File size: 1,436 Bytes
d45fd05
dedd5b6
ef5c5ef
 
d45fd05
030d3cf
dedd5b6
 
d45fd05
8595a86
d45fd05
 
ef5c5ef
d45fd05
 
 
 
 
4995664
d45fd05
 
dedd5b6
d45fd05
dedd5b6
d45fd05
 
030d3cf
d45fd05
 
 
 
 
dedd5b6
d45fd05
 
 
030d3cf
 
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
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


class GradioAgent:

    def __init__(self):
        self.agent = self.__create_agent()

    def inicialize(self):
        chatbot = gr.ChatInterface(
            self._respond,
            type="messages"
        )

        with gr.Blocks() 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")
        )
        llm = ChatHuggingFace(llm=hf_model)

        return create_agent(
            tools=[],
            model=llm,
            checkpointer=InMemorySaver(),
            system_prompt="You are a helpful and usefull assistant."
        )

    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()