Spaces:
Paused
Paused
File size: 2,092 Bytes
d45fd05 dedd5b6 ef5c5ef d45fd05 030d3cf 9b09327 03d676c 9defe9f dedd5b6 d45fd05 8595a86 d45fd05 ef5c5ef d45fd05 4995664 03d676c d45fd05 dedd5b6 d45fd05 dedd5b6 d45fd05 030d3cf d45fd05 0ede848 d45fd05 dedd5b6 9b09327 03d676c 33d3dfe 9defe9f 33d3dfe b0df00c 16fb597 b0df00c 9b09327 d45fd05 33d3dfe d45fd05 030d3cf 9b09327 d45fd05 dedd5b6 d45fd05 dedd5b6 030d3cf d45fd05 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
import os
import gradio as gr
from langchain.agents import create_agent
from langchain_huggingface import HuggingFaceEndpoint, ChatHuggingFace
from langgraph.checkpoint.memory import InMemorySaver
from dotenv import load_dotenv
from agents import get_book_retriver_agent
from tools import get_retrieve_book_context_rag_agent_tool
from tools import get_summarization_tool
class GradioAgent:
def __init__(self):
self.agent = self.__create_agent()
def inicialize(self):
chatbot = gr.ChatInterface(
self._respond,
type="messages"
)
with gr.Blocks(fill_height=True) as demo:
chatbot.render()
demo.launch()
def __create_agent(self):
hf_model = HuggingFaceEndpoint(
repo_id="Qwen/Qwen3-30B-A3B-Instruct-2507",
task="text-generation",
provider="auto",
huggingfacehub_api_token=os.getenv("HF_TOKEN"),
do_sample=False
)
llm = ChatHuggingFace(llm=hf_model)
rag_agent = get_book_retriver_agent()
tools = [
get_retrieve_book_context_rag_agent_tool(rag_agent),
get_summarization_tool()
]
prompt = (
"You are a helpful and usefull coordinator agent, you have access to a collection of tools and"
" agents to help you with reliable data to your query's. "
"One of your main objectives is to generate user friendly answers based on the information you have."
)
return create_agent(
tools=tools,
model=llm,
checkpointer=InMemorySaver(),
system_prompt=prompt
)
def _respond(
self,
message,
history
):
result = self.agent.invoke(
{"messages": [{"role": "user", "content": message}]},
{"configurable": {"thread_id": "1"}},
)
output = result['messages'][-1].content
yield output
if __name__ == "__main__":
load_dotenv()
gradio = GradioAgent()
gradio.inicialize()
|