Создание ИИ-бота с использованием модели 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.