Создание ИИ-бота с использованием модели Claude от Anthropic
В этом руководстве мы покажем, как настроить полностью функционального бота в Google Colab, который использует модель Claude от Anthropic совместно с mem0 для бесшовного запоминания информации. Сочетание интуитивной оркестрации LangGraph с мощным векторным хранилищем памяти mem0 даст возможность нашему ассистенту запоминать прошлые разговоры, извлекать необходимые детали по запросу и поддерживать естественное продолжение диалогов на протяжении сессий. Это руководство станет надежной основой для создания ИИ-решений с памятью, таких как поддержка клиентов, виртуальные помощники или интерактивные демонстрации.
Установка необходимых библиотек
Первым шагом является установка и обновление всех необходимых библиотек:
!pip install -qU langgraph mem0ai langchain langchain-anthropic anthropic
Эти действия обеспечивают наличие всех последних библиотек, необходимых для создания чат-бота с памятью на основе Claude в Google Colab, что помогает избежать проблем с зависимостями и упрощает процесс настройки.
Объединение основных компонентов
import os from typing import Annotated, TypedDict, List from langgraph.graph import StateGraph, START from langgraph.graph.message import add_messages from langchain_core.messages import SystemMessage, HumanMessage, AIMessage from langchain_anthropic import ChatAnthropic from mem0 import MemoryClient
Мы загружаем интерфейс операционной системы для API-ключей и определяем типы данных для отслеживания состояния разговоров, а также компоненты для оркестрации потока чата и хранения памяти.
Безопасное хранение ключей API
os.environ["ANTHROPIC_API_KEY"] = "Use Your Own API Key" MEM0_API_KEY = "Use Your Own API Key"
Безопасно вводим учетные данные Anthropic и mem0 в среду, обеспечивая правильную аутентификацию клиентов.
Инициализация ИИ-ядра
llm = ChatAnthropic(
model="claude-3-5-haiku-latest",
temperature=0.0,
max_tokens=1024,
anthropic_api_key=os.environ["ANTHROPIC_API_KEY"]
)
mem0 = MemoryClient(api_key=MEM0_API_KEY)
Инициализируем ядро разговорного ИИ, создавая экземпляр ChatAnthropic и Mem0 MemoryClient для хранения памяти.
Определение состояния разговора
class State(TypedDict):
messages: Annotated[List[HumanMessage | AIMessage], add_messages]
mem0_user_id: str
graph = StateGraph(State)
Создаем схему состояния разговора и подключаем её к LangGraph, что позволяет отслеживать историю сообщений.
Оркестрация логики бота
def chatbot(state: State):
messages = state["messages"]
user_id = state["mem0_user_id"]
memories = mem0.search(messages[-1].content, user_id=user_id)
context = "n".join(f"- {m['memory']}" for m in memories)
system_message = SystemMessage(content=(
"Вы - полезный асистент службы поддержки клиентов. "
"Используйте контекст ниже для персонализации ваших ответов:n" + context
))
full_msgs = [system_message] + messages
ai_resp: AIMessage = llm.invoke(full_msgs)
mem0.add(
f"Пользователь: {messages[-1].content}nАссистент: {ai_resp.content}",
user_id=user_id
)
return {"messages": [ai_resp]}
Определяем функцию бота, которая обрабатывает сообщения и запоминает новые интеракции.
Запуск диалога
def run_conversation(user_input: str, mem0_user_id: str):
config = {"configurable": {"thread_id": mem0_user_id}}
state = {"messages": [HumanMessage(content=user_input)], "mem0_user_id": mem0_user_id}
for event in compiled_graph.stream(state, config):
for node_output in event.values():
if node_output.get("messages"):
print("Ассистент:", node_output["messages"][-1].content)
return
Организуем запуск диалога и выводим сообщения от ассистента на экран.
Заключение
Мы создали архитектуру разговорного ИИ, которая объединяет модель Claude от Anthropic с возможностями постоянной памяти mem0. Этот подход позволяет запоминать специфические детали пользователя и адаптировать ответы со временем.
Рассмотрите возможность автоматизации процессов, которые могут быть улучшены с помощью ИИ, и обратитесь к нам за консультациями по управлению ИИ в бизнесе по адресу hello@itinai.ru.
Чтобы оставаться в курсе последних новостей в области ИИ, подписывайтесь на наш Telegram: https://t.me/itinai.



















