from chromadb import Client
import anthropic
chroma = Client()
collection = chroma.get_or_create_collection("chat_history")
def chat_with_memory(user_message, conversation_id):
# 检索相关历史
relevant_history = collection.query(
query_texts=[user_message],
n_results=3,
where={"conversation_id": conversation_id}
)
# 构建上下文
context = f"相关历史记录:\n{relevant_history['documents']}"
# 调用 Claude
response = anthropic.messages.create(
model="claude-4-5-sonnet-20250929",
messages=[
{"role": "system", "content": context},
{"role": "user", "content": user_message}
]
)
# 存储新对话
collection.add(
documents=[f"User: {user_message}\nAssistant: {response.content}"],
metadatas=[{"conversation_id": conversation_id}]
)
return response.content