18_memory_agent_short_term.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. from pathlib import Path
  2. import sys
  3. import time
  4. sys.path.append(str(Path(__file__).resolve().parents[1]))
  5. from _chapter2_config import get_chat_model, print_dependency_hint
  6. try:
  7. from langchain.agents import create_agent
  8. from langchain_core.messages import HumanMessage
  9. try:
  10. from langgraph.checkpoint.memory import InMemorySaver
  11. except ImportError:
  12. from langgraph.checkpoint.memory import MemorySaver as InMemorySaver
  13. except ModuleNotFoundError as exc:
  14. print_dependency_hint(exc)
  15. raise SystemExit(1)
  16. def main() -> None:
  17. try:
  18. model = get_chat_model(temperature=0)
  19. except ModuleNotFoundError as exc:
  20. print_dependency_hint(exc)
  21. raise SystemExit(1)
  22. checkpointer = InMemorySaver()
  23. timestamp = int(time.time())
  24. config = {"configurable": {"thread_id": f"{timestamp}"}}
  25. agent = create_agent(
  26. model=model,
  27. tools=[],
  28. checkpointer=checkpointer,
  29. system_prompt="你是一个翻译官,擅长中英互译。",
  30. )
  31. input_1 = {"messages": [HumanMessage(content="你好,我叫小呆。")]}
  32. response_a = agent.invoke(input=input_1, config=config)
  33. input_2 = {"messages": [HumanMessage(content="你好,我叫什么?")]}
  34. config_2 = {"configurable": {"thread_id": f"{timestamp}-new"}}
  35. response_b = agent.invoke(input=input_2, config=config_2)
  36. response_c = agent.invoke(input=input_2, config=config)
  37. print("Response A (第一次对话):")
  38. print(response_a)
  39. print("\nResponse B (新线程,无记忆):")
  40. print(response_b)
  41. print("\nResponse C (回到原线程,有记忆):")
  42. print(response_c)
  43. if __name__ == "__main__":
  44. main()