Update app.py
Browse files
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,
|
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 |
+
"""
|