thinkall commited on
Commit
ef42390
·
1 Parent(s): 3bd77a7

Handle API key

Browse files
Files changed (1) hide show
  1. app.py +77 -17
app.py CHANGED
@@ -7,16 +7,22 @@ import multiprocessing as mp
7
  from autogen.oai.openai_utils import config_list_from_json
8
  from autogen.retrieve_utils import TEXT_FORMATS
9
  from autogen.agentchat.contrib.retrieve_assistant_agent import RetrieveAssistantAgent
10
- from autogen.agentchat.contrib.retrieve_user_proxy_agent import RetrieveUserProxyAgent, PROMPT_DEFAULT
 
 
 
11
 
12
 
13
  def setup_configurations():
14
- config_list = autogen.config_list_from_models(model_list=["gpt-4", "gpt-3.5-turbo", "gpt-35-turbo"])
 
 
15
  if len(config_list) > 0:
16
  return [config_list[0]]
17
  else:
18
  return None
19
 
 
20
  def initialize_agents(config_list, docs_path=None):
21
  if docs_path is None:
22
  docs_path = "https://raw.githubusercontent.com/microsoft/autogen/main/README.md"
@@ -53,10 +59,12 @@ def initialize_agents(config_list, docs_path=None):
53
  def initiate_chat(problem, queue, n_results=3):
54
  global assistant, ragproxyagent
55
  if assistant is None:
56
- queue.put(["Please upload the LLM config file first"])
57
  return
58
  assistant.reset()
59
- ragproxyagent.initiate_chat(assistant, problem=problem, silent=False, n_results=n_results)
 
 
60
  # queue.put(ragproxyagent.last_message()["content"])
61
  messages = ragproxyagent.chat_messages
62
  messages = [messages[k] for k in messages.keys()][0]
@@ -77,6 +85,7 @@ def chatbot_reply(input_text):
77
  messages = queue.get()
78
  return messages
79
 
 
80
  def get_description_text():
81
  return """
82
  # Microsoft AutoGen: Retrieve Chat Demo
@@ -86,9 +95,12 @@ def get_description_text():
86
  #### [GitHub](https://github.com/microsoft/autogen) [Discord](https://discord.gg/pAbnFJrkgZ) [Docs](https://microsoft.github.io/autogen/) [Paper](https://arxiv.org/abs/2308.08155)
87
  """
88
 
 
89
  global config_list, assistant, ragproxyagent
90
  config_list = setup_configurations()
91
- assistant, ragproxyagent = initialize_agents(config_list) if config_list else (None, None)
 
 
92
 
93
  with gr.Blocks() as demo:
94
  gr.Markdown(get_description_text())
@@ -99,21 +111,69 @@ with gr.Blocks() as demo:
99
  avatar_images=(None, (os.path.join(os.path.dirname(__file__), "autogen.png"))),
100
  # height=600,
101
  )
 
 
 
 
 
 
 
 
102
  with gr.Row():
103
- txt_input = gr.Textbox(
104
- scale=4,
105
- show_label=False,
106
- placeholder="Enter text and press enter",
107
- container=False,
108
- )
109
 
110
  def upload_file(file):
111
  global config_list, assistant, ragproxyagent
112
  update_context_url(file.name)
113
 
114
- upload_button = gr.UploadButton("Click to Upload Document", file_types=[f".{i}" for i in TEXT_FORMATS], file_count="single")
 
 
 
 
115
  upload_button.upload(upload_file, upload_button)
116
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  clear = gr.ClearButton([txt_input, chatbot])
118
 
119
  txt_context_url = gr.Textbox(
@@ -135,16 +195,17 @@ with gr.Blocks() as demo:
135
  layout={"height": 20},
136
  )
137
 
138
-
139
  def respond(message, chat_history):
140
  messages = chatbot_reply(message)
141
- chat_history.append((message, messages[-1] if messages[-1] != "TERMINATE" else messages[-2]))
 
 
142
  return "", chat_history
143
 
144
  def update_prompt(prompt):
145
  ragproxyagent.customized_prompt = prompt
146
  return prompt
147
-
148
  def update_context_url(context_url):
149
  global assistant, ragproxyagent
150
  try:
@@ -153,7 +214,7 @@ with gr.Blocks() as demo:
153
  pass
154
  assistant, ragproxyagent = initialize_agents(config_list, docs_path=context_url)
155
  return context_url
156
-
157
  txt_input.submit(respond, [txt_input, chatbot], [txt_input, chatbot])
158
  txt_prompt.submit(update_prompt, [txt_prompt], [txt_prompt])
159
  txt_context_url.submit(update_context_url, [txt_context_url], [txt_context_url])
@@ -161,4 +222,3 @@ with gr.Blocks() as demo:
161
 
162
  if __name__ == "__main__":
163
  demo.launch(share=True)
164
-
 
7
  from autogen.oai.openai_utils import config_list_from_json
8
  from autogen.retrieve_utils import TEXT_FORMATS
9
  from autogen.agentchat.contrib.retrieve_assistant_agent import RetrieveAssistantAgent
10
+ from autogen.agentchat.contrib.retrieve_user_proxy_agent import (
11
+ RetrieveUserProxyAgent,
12
+ PROMPT_DEFAULT,
13
+ )
14
 
15
 
16
  def setup_configurations():
17
+ config_list = autogen.config_list_from_models(
18
+ model_list=["gpt-4", "gpt-3.5-turbo", "gpt-35-turbo"]
19
+ )
20
  if len(config_list) > 0:
21
  return [config_list[0]]
22
  else:
23
  return None
24
 
25
+
26
  def initialize_agents(config_list, docs_path=None):
27
  if docs_path is None:
28
  docs_path = "https://raw.githubusercontent.com/microsoft/autogen/main/README.md"
 
59
  def initiate_chat(problem, queue, n_results=3):
60
  global assistant, ragproxyagent
61
  if assistant is None:
62
+ queue.put(["Please set the LLM config first"])
63
  return
64
  assistant.reset()
65
+ ragproxyagent.initiate_chat(
66
+ assistant, problem=problem, silent=False, n_results=n_results
67
+ )
68
  # queue.put(ragproxyagent.last_message()["content"])
69
  messages = ragproxyagent.chat_messages
70
  messages = [messages[k] for k in messages.keys()][0]
 
85
  messages = queue.get()
86
  return messages
87
 
88
+
89
  def get_description_text():
90
  return """
91
  # Microsoft AutoGen: Retrieve Chat Demo
 
95
  #### [GitHub](https://github.com/microsoft/autogen) [Discord](https://discord.gg/pAbnFJrkgZ) [Docs](https://microsoft.github.io/autogen/) [Paper](https://arxiv.org/abs/2308.08155)
96
  """
97
 
98
+
99
  global config_list, assistant, ragproxyagent
100
  config_list = setup_configurations()
101
+ assistant, ragproxyagent = (
102
+ initialize_agents(config_list) if config_list else (None, None)
103
+ )
104
 
105
  with gr.Blocks() as demo:
106
  gr.Markdown(get_description_text())
 
111
  avatar_images=(None, (os.path.join(os.path.dirname(__file__), "autogen.png"))),
112
  # height=600,
113
  )
114
+
115
+ txt_input = gr.Textbox(
116
+ scale=4,
117
+ show_label=False,
118
+ placeholder="Enter text and press enter",
119
+ container=False,
120
+ )
121
+
122
  with gr.Row():
 
 
 
 
 
 
123
 
124
  def upload_file(file):
125
  global config_list, assistant, ragproxyagent
126
  update_context_url(file.name)
127
 
128
+ upload_button = gr.UploadButton(
129
+ "Click to Upload Document",
130
+ file_types=[f".{i}" for i in TEXT_FORMATS],
131
+ file_count="single",
132
+ )
133
  upload_button.upload(upload_file, upload_button)
134
 
135
+ def set_oai_key(secret):
136
+ os.environ["OPENAI_API_KEY"] = secret
137
+ return secret
138
+
139
+ def set_aoai_key(secret):
140
+ os.environ["AZURE_OPENAI_API_KEY"] = secret
141
+ return secret
142
+
143
+ def set_aoai_base(secret):
144
+ os.environ["AZURE_OPENAI_API_BASE"] = secret
145
+ return secret
146
+
147
+ txt_oai_key = gr.Textbox(
148
+ label="OpenAI API Key",
149
+ max_lines=1,
150
+ show_label=True,
151
+ value=os.environ.get("OPENAI_API_KEY", ""),
152
+ container=True,
153
+ type="password",
154
+ )
155
+ txt_oai_key.submit(set_oai_key, [txt_oai_key], [txt_oai_key])
156
+ txt_aoai_key = gr.Textbox(
157
+ label="Azure OpenAI API Key",
158
+ max_lines=1,
159
+ show_label=True,
160
+ value=os.environ.get("AZURE_OPENAI_API_KEY", ""),
161
+ container=True,
162
+ type="password",
163
+ )
164
+ txt_aoai_key.submit(set_aoai_key, [txt_aoai_key], [txt_aoai_key])
165
+ txt_aoai_base_url = gr.Textbox(
166
+ label="Azure OpenAI API Base",
167
+ max_lines=1,
168
+ show_label=True,
169
+ value=os.environ.get("AZURE_OPENAI_API_BASE", ""),
170
+ container=True,
171
+ type="password",
172
+ )
173
+ txt_aoai_base_url.submit(
174
+ set_aoai_base, [txt_aoai_base_url], [txt_aoai_base_url]
175
+ )
176
+
177
  clear = gr.ClearButton([txt_input, chatbot])
178
 
179
  txt_context_url = gr.Textbox(
 
195
  layout={"height": 20},
196
  )
197
 
 
198
  def respond(message, chat_history):
199
  messages = chatbot_reply(message)
200
+ chat_history.append(
201
+ (message, messages[-1] if messages[-1] != "TERMINATE" else messages[-2])
202
+ )
203
  return "", chat_history
204
 
205
  def update_prompt(prompt):
206
  ragproxyagent.customized_prompt = prompt
207
  return prompt
208
+
209
  def update_context_url(context_url):
210
  global assistant, ragproxyagent
211
  try:
 
214
  pass
215
  assistant, ragproxyagent = initialize_agents(config_list, docs_path=context_url)
216
  return context_url
217
+
218
  txt_input.submit(respond, [txt_input, chatbot], [txt_input, chatbot])
219
  txt_prompt.submit(update_prompt, [txt_prompt], [txt_prompt])
220
  txt_context_url.submit(update_context_url, [txt_context_url], [txt_context_url])
 
222
 
223
  if __name__ == "__main__":
224
  demo.launch(share=True)