Commit
·
36e2c69
1
Parent(s):
9fda3c0
Add code
Browse files
app.py
CHANGED
@@ -8,6 +8,7 @@ from typing import AsyncGenerator
|
|
8 |
|
9 |
import asyncpg
|
10 |
import gradio as gr
|
|
|
11 |
import numpy as np
|
12 |
import pydantic_core
|
13 |
from gradio_webrtc import (
|
@@ -24,6 +25,11 @@ from pydantic_ai import RunContext
|
|
24 |
from pydantic_ai.agent import Agent
|
25 |
from pydantic_ai.messages import ModelStructuredResponse, ModelTextResponse, ToolReturn
|
26 |
|
|
|
|
|
|
|
|
|
|
|
27 |
DOCS = json.load(open("gradio_docs.json"))
|
28 |
|
29 |
groq_client = Groq()
|
@@ -38,7 +44,7 @@ class Deps:
|
|
38 |
|
39 |
SYSTEM_PROMPT = (
|
40 |
"You are an assistant designed to help users answer questions about Gradio. "
|
41 |
-
"You have a
|
42 |
"Be curteous and helpful to the user but feel free to refuse answering questions that are not about Gradio. "
|
43 |
)
|
44 |
|
@@ -60,7 +66,7 @@ async def database_connect(
|
|
60 |
create_db: bool = False,
|
61 |
) -> AsyncGenerator[asyncpg.Pool, None]:
|
62 |
server_dsn, database = (
|
63 |
-
os.getenv("
|
64 |
"gradio_ai_rag",
|
65 |
)
|
66 |
if create_db:
|
@@ -171,7 +177,7 @@ async def stream_from_agent(
|
|
171 |
with gr.Blocks() as demo:
|
172 |
placeholder = """
|
173 |
<div style="display: flex; justify-content: center; align-items: center; gap: 1rem; padding: 1rem; width: 100%">
|
174 |
-
<img src="/gradio_api/file=
|
175 |
<div>
|
176 |
<h1 style="margin: 0 0 1rem 0">Chat with Gradio Docs 🗣️</h1>
|
177 |
<h3 style="margin: 0 0 0.5rem 0">
|
@@ -188,7 +194,7 @@ with gr.Blocks() as demo:
|
|
188 |
label="Gradio Docs Bot",
|
189 |
type="messages",
|
190 |
placeholder=placeholder,
|
191 |
-
avatar_images=(None, "
|
192 |
)
|
193 |
audio = WebRTC(
|
194 |
label="Talk with the Agent",
|
@@ -210,4 +216,4 @@ with gr.Blocks() as demo:
|
|
210 |
|
211 |
|
212 |
if __name__ == "__main__":
|
213 |
-
demo.launch(allowed_paths=["
|
|
|
8 |
|
9 |
import asyncpg
|
10 |
import gradio as gr
|
11 |
+
from gradio.utils import get_space
|
12 |
import numpy as np
|
13 |
import pydantic_core
|
14 |
from gradio_webrtc import (
|
|
|
25 |
from pydantic_ai.agent import Agent
|
26 |
from pydantic_ai.messages import ModelStructuredResponse, ModelTextResponse, ToolReturn
|
27 |
|
28 |
+
if not get_space():
|
29 |
+
from dotenv import load_dotenv
|
30 |
+
|
31 |
+
load_dotenv()
|
32 |
+
|
33 |
DOCS = json.load(open("gradio_docs.json"))
|
34 |
|
35 |
groq_client = Groq()
|
|
|
44 |
|
45 |
SYSTEM_PROMPT = (
|
46 |
"You are an assistant designed to help users answer questions about Gradio. "
|
47 |
+
"You have a retrieve tool that can provide relevant documentation sections based on the user query. "
|
48 |
"Be curteous and helpful to the user but feel free to refuse answering questions that are not about Gradio. "
|
49 |
)
|
50 |
|
|
|
66 |
create_db: bool = False,
|
67 |
) -> AsyncGenerator[asyncpg.Pool, None]:
|
68 |
server_dsn, database = (
|
69 |
+
os.getenv("DB_URL"),
|
70 |
"gradio_ai_rag",
|
71 |
)
|
72 |
if create_db:
|
|
|
177 |
with gr.Blocks() as demo:
|
178 |
placeholder = """
|
179 |
<div style="display: flex; justify-content: center; align-items: center; gap: 1rem; padding: 1rem; width: 100%">
|
180 |
+
<img src="/gradio_api/file=gradio_logo.png" style="max-width: 200px; height: auto">
|
181 |
<div>
|
182 |
<h1 style="margin: 0 0 1rem 0">Chat with Gradio Docs 🗣️</h1>
|
183 |
<h3 style="margin: 0 0 0.5rem 0">
|
|
|
194 |
label="Gradio Docs Bot",
|
195 |
type="messages",
|
196 |
placeholder=placeholder,
|
197 |
+
avatar_images=(None, "gradio_logo.png"),
|
198 |
)
|
199 |
audio = WebRTC(
|
200 |
label="Talk with the Agent",
|
|
|
216 |
|
217 |
|
218 |
if __name__ == "__main__":
|
219 |
+
demo.launch(allowed_paths=["gradio_logo.png"])
|