| | import gradio as gr |
| | from bedrock_client import bedrock_llm |
| | from langchain.schema import SystemMessage, HumanMessage, AIMessage |
| | import os |
| |
|
| |
|
| | AUTHS = [(os.environ.get('USER'), os.environ.get('PW'))] |
| | SYSTEM_PROMPT = os.environ.get('SYSTEM_PROMPT', '') |
| |
|
| |
|
| | def chat(message, history): |
| | |
| |
|
| | |
| | history_langchain_format: list = [SystemMessage(content=SYSTEM_PROMPT)] |
| |
|
| | |
| | for msg in history: |
| | if msg["role"] == "user": |
| | history_langchain_format.append(HumanMessage(content=msg["content"])) |
| | elif msg["role"] == "assistant": |
| | history_langchain_format.append(AIMessage(content=msg["content"])) |
| |
|
| | |
| | history_langchain_format.append(HumanMessage(content=message)) |
| |
|
| | stream =bedrock_llm.stream(history_langchain_format) |
| |
|
| | full = next(stream) |
| | |
| | try: |
| | first_chunk = next(stream) |
| | except StopIteration: |
| | |
| | yield "⚠️ Sorry, no response from the model." |
| | return |
| |
|
| |
|
| | for chunk in stream: |
| | full +=chunk |
| | yield full.content |
| |
|
| |
|
| | with gr.Blocks(css_paths=["static/deval.css"],theme = gr.themes.Default(primary_hue="blue", secondary_hue="yellow"),) as demo: |
| | |
| |
|
| |
|
| | with gr.Row(): |
| | with gr.Column(scale=1): |
| | gr.Image( |
| | value="static/logo.png", |
| | height=50, |
| | show_label=False, |
| | interactive=False, |
| | show_download_button=False, |
| | show_fullscreen_button=False, |
| | elem_id="logo-primary", |
| | ) |
| | with gr.Column(scale=10): |
| | gr.Markdown( |
| | "# DEvalBot\n\n" |
| | "**Hinweis:** Bitte gebe keine vertraulichen Informationen ein. " |
| | "Dazu zählen u.a. sensible personenbezogene Daten, institutsinterne " |
| | "Informationen oder Dokumente, unveröffentlichte Berichtsinhalte, " |
| | "vertrauliche Informationen oder Dokumente externer Organisationen " |
| | "sowie sensible erhobene Daten (wie etwa Interviewtranskripte).", elem_id="header-text" |
| | ) |
| |
|
| | |
| | gr.HTML( |
| | """ |
| | <script> |
| | // Reload the page after 1 minutes (300 000 ms) |
| | setTimeout(() => { |
| | window.location.reload(); |
| | }, 1000); |
| | </script> |
| | """ |
| | ) |
| | gr.ChatInterface( |
| | chat, |
| | type="messages", |
| | multimodal=os.environ.get('MULTIMODAL', False), |
| | editable=True, |
| | concurrency_limit=20, |
| | save_history=True, |
| | ) |
| | |
| |
|
| |
|
| | demo.queue().launch(auth=AUTHS,share=True, ssr_mode=False) |