Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -16,29 +16,7 @@ from langchain.callbacks.base import BaseCallbackHandler
|
|
| 16 |
|
| 17 |
from langchain.tools import YouTubeSearchTool as YTS
|
| 18 |
# 2. 컀μ€ν
μ½λ°± νΈλ€λ¬
|
| 19 |
-
class StreamingAgentCallbackHandler(BaseCallbackHandler):
|
| 20 |
-
def __init__(self, q: queue.Queue):
|
| 21 |
-
self.q = q
|
| 22 |
|
| 23 |
-
def on_agent_action(self, action, **kwargs):
|
| 24 |
-
log = f"π§ Thought: {action.log.strip()}\nπ§ Action: {action.tool}({action.tool_input})"
|
| 25 |
-
self.q.put(log)
|
| 26 |
-
|
| 27 |
-
def on_tool_end(self, output, **kwargs):
|
| 28 |
-
self.q.put(f"π¦ Observation: {output}\n")
|
| 29 |
-
|
| 30 |
-
def on_agent_finish(self, finish, **kwargs):
|
| 31 |
-
self.q.put(f"\nβ
Final Answer: {finish.return_values['output']}")
|
| 32 |
-
|
| 33 |
-
def on_llm_new_token(self, token: str, **kwargs):
|
| 34 |
-
# μ νμ μΌλ‘ ν ν° μ€νΈλ¦¬λ° μΆλ ₯
|
| 35 |
-
pass
|
| 36 |
-
|
| 37 |
-
def on_llm_end(self, response, **kwargs):
|
| 38 |
-
self.q.put("[END]")
|
| 39 |
-
|
| 40 |
-
def on_llm_error(self, error, **kwargs):
|
| 41 |
-
self.q.put(f"[ERROR] {str(error)}")
|
| 42 |
|
| 43 |
from langchain_community.retrievers import WikipediaRetriever
|
| 44 |
from langchain.tools.retriever import create_retriever_tool
|
|
@@ -132,17 +110,14 @@ tools.extend(FMT(root_dir=str(os.getcwd())).get_tools())
|
|
| 132 |
# ββββββββββββββββββββββββββββββ
|
| 133 |
# β
Agent μ΄κΈ°ν
|
| 134 |
# ββββββββββββββββββββββββββββββ
|
| 135 |
-
|
| 136 |
-
handler = StreamingAgentCallbackHandler(q_stream)
|
| 137 |
agent = initialize_agent(
|
| 138 |
tools,
|
| 139 |
llm,
|
| 140 |
memory=MEM(),
|
| 141 |
agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
|
| 142 |
verbose=True,
|
| 143 |
-
handle_parsing_errors=True
|
| 144 |
-
callbacks=[handler]
|
| 145 |
-
)
|
| 146 |
|
| 147 |
# ββββββββββββββββββββββββββββββ
|
| 148 |
# β
Gradio UI
|
|
@@ -153,11 +128,7 @@ def chat(message, history):
|
|
| 153 |
except Exception as e:
|
| 154 |
response = f"β οΈ μ€λ₯: {e}"
|
| 155 |
history = history + [(message, response)]
|
| 156 |
-
|
| 157 |
-
msg = q_stream.get()
|
| 158 |
-
if msg == "[END]":
|
| 159 |
-
break
|
| 160 |
-
yield msg + "\n"
|
| 161 |
|
| 162 |
with gr.Blocks(theme=gr.themes.Soft(), title="PIXAL Assistant (LangChain + GitHub LLM)") as demo:
|
| 163 |
gr.Markdown("""
|
|
|
|
| 16 |
|
| 17 |
from langchain.tools import YouTubeSearchTool as YTS
|
| 18 |
# 2. 컀μ€ν
μ½λ°± νΈλ€λ¬
|
|
|
|
|
|
|
|
|
|
| 19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
|
| 21 |
from langchain_community.retrievers import WikipediaRetriever
|
| 22 |
from langchain.tools.retriever import create_retriever_tool
|
|
|
|
| 110 |
# ββββββββββββββββββββββββββββββ
|
| 111 |
# β
Agent μ΄κΈ°ν
|
| 112 |
# ββββββββββββββββββββββββββββββ
|
| 113 |
+
|
|
|
|
| 114 |
agent = initialize_agent(
|
| 115 |
tools,
|
| 116 |
llm,
|
| 117 |
memory=MEM(),
|
| 118 |
agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
|
| 119 |
verbose=True,
|
| 120 |
+
handle_parsing_errors=True)
|
|
|
|
|
|
|
| 121 |
|
| 122 |
# ββββββββββββββββββββββββββββββ
|
| 123 |
# β
Gradio UI
|
|
|
|
| 128 |
except Exception as e:
|
| 129 |
response = f"β οΈ μ€λ₯: {e}"
|
| 130 |
history = history + [(message, response)]
|
| 131 |
+
return history,history
|
|
|
|
|
|
|
|
|
|
|
|
|
| 132 |
|
| 133 |
with gr.Blocks(theme=gr.themes.Soft(), title="PIXAL Assistant (LangChain + GitHub LLM)") as demo:
|
| 134 |
gr.Markdown("""
|