Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -57,37 +57,42 @@ class ZephyrPipelineModel:
|
|
| 57 |
|
| 58 |
class LangGraphAgent:
|
| 59 |
def __init__(self):
|
| 60 |
-
#
|
| 61 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
|
| 63 |
-
#
|
| 64 |
builder = StateGraph()
|
| 65 |
|
| 66 |
def call_model(state):
|
| 67 |
messages = state.get("messages", [])
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
return {"messages": messages + [AIMessage(content="❌ No user input found.")]}
|
| 71 |
-
|
| 72 |
-
response = self.model(user_msg.content)
|
| 73 |
-
return {"messages": messages + [AIMessage(content=response)]}
|
| 74 |
|
| 75 |
builder.add_node("chat", call_model)
|
| 76 |
builder.set_entry_point("chat")
|
| 77 |
builder.add_edge("chat", END)
|
| 78 |
|
| 79 |
-
# Compile the graph
|
| 80 |
self.graph = builder.compile()
|
| 81 |
|
| 82 |
def __call__(self, question: str) -> str:
|
| 83 |
-
# Wrap input in HumanMessage format
|
| 84 |
result = self.graph.invoke({
|
| 85 |
"messages": [HumanMessage(content=question)]
|
| 86 |
})
|
| 87 |
|
| 88 |
-
|
| 89 |
-
messages = result.get("messages", [])
|
| 90 |
-
for msg in reversed(messages):
|
| 91 |
if isinstance(msg, AIMessage):
|
| 92 |
return msg.content
|
| 93 |
|
|
|
|
| 57 |
|
| 58 |
class LangGraphAgent:
|
| 59 |
def __init__(self):
|
| 60 |
+
# ✅ Add token from environment
|
| 61 |
+
hf_token = os.environ.get("HF_TOKEN")
|
| 62 |
+
if not hf_token:
|
| 63 |
+
raise ValueError("HF_TOKEN is not set.")
|
| 64 |
+
|
| 65 |
+
# ✅ Restore this structure with token
|
| 66 |
+
self.model = ChatHuggingFace.from_model_id(
|
| 67 |
+
model_id="HuggingFaceH4/zephyr-7b-beta",
|
| 68 |
+
task="text-generation",
|
| 69 |
+
model_kwargs={
|
| 70 |
+
"temperature": 0.7,
|
| 71 |
+
"max_new_tokens": 512
|
| 72 |
+
},
|
| 73 |
+
huggingfacehub_api_token=hf_token,
|
| 74 |
+
)
|
| 75 |
|
| 76 |
+
# ✅ Simple LangGraph setup
|
| 77 |
builder = StateGraph()
|
| 78 |
|
| 79 |
def call_model(state):
|
| 80 |
messages = state.get("messages", [])
|
| 81 |
+
response = self.model.invoke(messages)
|
| 82 |
+
return {"messages": messages + [response]}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 83 |
|
| 84 |
builder.add_node("chat", call_model)
|
| 85 |
builder.set_entry_point("chat")
|
| 86 |
builder.add_edge("chat", END)
|
| 87 |
|
|
|
|
| 88 |
self.graph = builder.compile()
|
| 89 |
|
| 90 |
def __call__(self, question: str) -> str:
|
|
|
|
| 91 |
result = self.graph.invoke({
|
| 92 |
"messages": [HumanMessage(content=question)]
|
| 93 |
})
|
| 94 |
|
| 95 |
+
for msg in reversed(result.get("messages", [])):
|
|
|
|
|
|
|
| 96 |
if isinstance(msg, AIMessage):
|
| 97 |
return msg.content
|
| 98 |
|