alexkueck commited on
Commit
27b2a14
1 Parent(s): 955da08

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +68 -2
app.py CHANGED
@@ -2,6 +2,7 @@ import os, sys, json
2
  import gradio as gr
3
  import openai
4
  from openai import OpenAI
 
5
 
6
  from langchain.chains import LLMChain, RetrievalQA
7
  from langchain.chat_models import ChatOpenAI
@@ -78,6 +79,16 @@ MODEL_NAME = "gpt-3.5-turbo-16k"
78
  #################################################
79
  #Funktionen zur Verarbeitung
80
  ################################################
 
 
 
 
 
 
 
 
 
 
81
  #die Inhalte splitten, um in Vektordatenbank entsprechend zu laden als Splits
82
  def document_loading_splitting():
83
  global splittet
@@ -154,7 +165,7 @@ def rag_chain(llm, prompt, db):
154
 
155
  ###################################################
156
  #Funktion von Gradio aus, die den dort eingegebenen Prompt annimmt und weiterverarbeitet
157
- def invoke (prompt, chatbot, openai_api_key, rag_option, temperature=0.9, max_new_tokens=512, top_p=0.6, repetition_penalty=1.3,):
158
  global splittet
159
 
160
  if (openai_api_key == "" or openai_api_key == "sk-"):
@@ -187,6 +198,14 @@ def invoke (prompt, chatbot, openai_api_key, rag_option, temperature=0.9, max_ne
187
  result = llm_chain(llm, prompt)
188
  except Exception as e:
189
  raise gr.Error(e)
 
 
 
 
 
 
 
 
190
  return result
191
 
192
  ################################################
@@ -250,6 +269,52 @@ additional_inputs = [
250
  gr.Slider(label="Repetition penalty", value=1.2, minimum=1.0, maximum=2.0, step=0.05, interactive=True, info="Strafe für wiederholte Tokens")
251
  ]
252
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
253
  chatbot_stream = gr.Chatbot(avatar_images=(
254
  "https://drive.google.com/uc?id=18xKoNOHN15H_qmGhK__VKnGjKjirrquW",
255
  "https://drive.google.com/uc?id=1tfELAQW_VbPCy6QTRbexRlwAEYo8rSSv"
@@ -277,4 +342,5 @@ with gr.Blocks() as demo:
277
  gr.Radio(["Off", "Chroma"], label="Retrieval Augmented Generation", value = "Off")
278
  gr.Textbox(label = "OpenAI API Key", value = "sk-", lines = 1)
279
 
280
- demo.queue( max_size=100).launch(debug=True)
 
 
2
  import gradio as gr
3
  import openai
4
  from openai import OpenAI
5
+ import time
6
 
7
  from langchain.chains import LLMChain, RetrievalQA
8
  from langchain.chat_models import ChatOpenAI
 
79
  #################################################
80
  #Funktionen zur Verarbeitung
81
  ################################################
82
+ def add_text(history, text):
83
+ history = history + [(text, None)]
84
+ return history, gr.Textbox(value="", interactive=False)
85
+
86
+
87
+ def add_file(history, file):
88
+ history = history + [((file.name,), None)]
89
+ return history
90
+
91
+
92
  #die Inhalte splitten, um in Vektordatenbank entsprechend zu laden als Splits
93
  def document_loading_splitting():
94
  global splittet
 
165
 
166
  ###################################################
167
  #Funktion von Gradio aus, die den dort eingegebenen Prompt annimmt und weiterverarbeitet
168
+ def invoke (prompt, history, openai_api_key, rag_option, temperature=0.9, max_new_tokens=512, top_p=0.6, repetition_penalty=1.3,):
169
  global splittet
170
 
171
  if (openai_api_key == "" or openai_api_key == "sk-"):
 
198
  result = llm_chain(llm, prompt)
199
  except Exception as e:
200
  raise gr.Error(e)
201
+
202
+ #Antwort als Stream ausgeben... und in History speichern
203
+ history[-1][1] = ""
204
+ for character in result:
205
+ history[-1][1] += character
206
+ time.sleep(0.05)
207
+ yield history
208
+
209
  return result
210
 
211
  ################################################
 
269
  gr.Slider(label="Repetition penalty", value=1.2, minimum=1.0, maximum=2.0, step=0.05, interactive=True, info="Strafe für wiederholte Tokens")
270
  ]
271
 
272
+ with gr.Blocks() as demo:
273
+ chatbot = gr.Chatbot(
274
+ [],
275
+ elem_id="chatbot",
276
+ bubble_full_width=False,
277
+ avatar_images=(None, (os.path.join(os.path.dirname(__file__), "avatar.png"))),
278
+ )
279
+
280
+ with gr.Row():
281
+ txt = gr.Textbox(
282
+ scale=4,
283
+ show_label=False,
284
+ placeholder="Gibt Text ein und drücke Enter oder lade ein Bild hoch.",
285
+ container=False,
286
+ )
287
+ btn = gr.UploadButton("📁", file_types=["image", "video", "audio"])
288
+
289
+ txt_msg = txt.submit(add_text, [chatbot, txt], [chatbot, txt], queue=False).then(
290
+ invoke, chatbot, chatbot, api_name="bot_response"
291
+ )
292
+ txt_msg.then(lambda: gr.Textbox(interactive=True), None, [txt], queue=False)
293
+ file_msg = btn.upload(add_file, [chatbot, btn], [chatbot], queue=False).then(
294
+ invoke, chatbot, chatbot
295
+ )
296
+
297
+ demo.queue()
298
+ demo.launch()
299
+
300
+
301
+
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+ """
317
+
318
  chatbot_stream = gr.Chatbot(avatar_images=(
319
  "https://drive.google.com/uc?id=18xKoNOHN15H_qmGhK__VKnGjKjirrquW",
320
  "https://drive.google.com/uc?id=1tfELAQW_VbPCy6QTRbexRlwAEYo8rSSv"
 
342
  gr.Radio(["Off", "Chroma"], label="Retrieval Augmented Generation", value = "Off")
343
  gr.Textbox(label = "OpenAI API Key", value = "sk-", lines = 1)
344
 
345
+ demo.queue( max_size=100).launch(debug=True)
346
+ """