forked from CopilotKit/CopilotKit
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpirate_agent.py
More file actions
44 lines (33 loc) · 1.25 KB
/
Copy pathpirate_agent.py
File metadata and controls
44 lines (33 loc) · 1.25 KB
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
"""Test Pirate Agent"""
from typing import Any, cast
# from langchain_openai import ChatOpenAI
from langgraph.graph import StateGraph, END
from langgraph.graph import MessagesState
from langgraph.checkpoint.memory import MemorySaver
from langchain_core.runnables import RunnableConfig
# from langchain_core.messages import SystemMessage
from copilotkit.langchain import copilotkit_emit_message
class PirateAgentState(MessagesState):
"""Pirate Agent State"""
async def pirate_node(state: PirateAgentState, config: RunnableConfig): # pylint: disable=unused-argument
"""
Speaks like a pirate
"""
await copilotkit_emit_message(config, "Arr!!!")
# system_message = "You speak like a pirate. Your name is Captain Copilot"
# pirate_model = ChatOpenAI(model="gpt-4o")
# response = await pirate_model.ainvoke([
# *state["messages"],
# SystemMessage(
# content=system_message
# )
# ], config)
return {
"messages": state["messages"],
}
workflow = StateGraph(PirateAgentState)
workflow.add_node("pirate_node", cast(Any, pirate_node))
workflow.set_entry_point("pirate_node")
workflow.add_edge("pirate_node", END)
memory = MemorySaver()
pirate_graph = workflow.compile(checkpointer=memory)