In [1]:
from dotenv import load_dotenv
load_dotenv()
Out[1]:
True
In [2]:
import os
from langchain.chat_models import init_chat_model
from langchain.agents import create_agent
from langchain.messages import HumanMessage, AIMessage
from langchain.tools import tool
from typing import Dict, Any
from tavily import TavilyClient
from pprint import pprint
DEEPSEEK_MODEL = "deepseek-chat"
DEEPSEEK_BASE_URL = "https://api.deepseek.com"
def deepseek_model(model: str = DEEPSEEK_MODEL, max_tokens=1000, **kwargs):
return init_chat_model(
model=model,
# DeepSeek uses LangChain's OpenAI-compatible transport.
model_provider="openai",
api_key=os.environ["DEEPSEEK_API_KEY"],
base_url=DEEPSEEK_BASE_URL,
max_tokens=max_tokens,
**kwargs,
)
No memory¶
In [ ]:
agent = create_agent(
deepseek_model()
)
In [ ]:
question = HumanMessage(content="Hello my name is Seán and my favourite colour is green")
response = agent.invoke(
{"messages": [question]}
)
In [ ]:
print(response['messages'][-1].content)
In [ ]:
question = HumanMessage(content="What's my favourite colour?")
response = agent.invoke(
{"messages": [question]}
)
pprint(response)
In [ ]:
print(response['messages'][-1].content)
Memory¶
In [ ]:
from langgraph.checkpoint.memory import InMemorySaver
agent = create_agent(
deepseek_model(),
checkpointer=InMemorySaver(),
)
question = HumanMessage(content="Hello my name is Seán and my favourite colour is green")
config = {"configurable": {"thread_id": "1"}}
response = agent.invoke(
{"messages": [question]},
config,
)
In [ ]:
print(response['messages'][-1].content)
In [ ]:
question = HumanMessage(content="What's my favourite colour?")
response = agent.invoke(
{"messages": [question]},
config,
)
pprint(response)
In [ ]:
print(response['messages'][-1].content)
In [ ]:
for msg in response["messages"]:
pprint(msg.content)
print()
In [3]:
from langgraph.checkpoint.memory import InMemorySaver
agent = create_agent (
deepseek_model(),
checkpointer = InMemorySaver()
)
question1 = {
"role":"user",
"content":"Hello my name is Seán and my favourite colour is green"
}
user_input1 = {"messages": question1}
config = {"configurable":{"thread_id": "1"}}
response1 = agent.invoke(user_input1, config)
question2 = {
"role":"user",
"content":"What's my favourite colour?"
}
user_input2 = {"messages": question2}
response2 = agent.invoke(user_input2, config)
In [4]:
for msg in response2["messages"]:
pprint(msg.content)
print()
'Hello my name is Seán and my favourite colour is green'
("Hello Seán! It's nice to meet you. Green is a wonderful favourite "
'colour—it’s associated with nature, growth, and harmony. Do you have a '
'particular shade of green you like best, like forest green, emerald, or '
'lime?')
"What's my favourite colour?"
'Based on what you told me earlier, your favourite colour is **green**! 😊'
In [ ]: