<НА ГЛАВНУЮ

Как интегрировать инструменты Dappier AI для поиска и рекомендаций в реальном времени с OpenAI Chat API: пошаговое руководство

Подробное руководство по интеграции инструментов Dappier AI для поиска и рекомендаций с OpenAI Chat API для создания интеллектуальных разговорных приложений с актуальными данными и персонализированным контентом.

Настройка окружения

В этом руководстве мы подробно рассмотрим, как интегрировать инструменты Dappier AI для поиска и рекомендаций в реальном времени в разговорные приложения с использованием OpenAI Chat API. Начинаем с настройки среды в Google Colab и установки всех необходимых зависимостей, включая библиотеки LangChain и клиент OpenAI.

!pip install -qU langchain-dappier langchain langchain-openai langchain-community langchain-core openai

Безопасная загрузка API ключей

Мы безопасно загружаем API ключи Dappier и OpenAI во время выполнения с помощью модуля getpass в Python, чтобы избежать жесткой кодировки конфиденциальных данных.

import os
from getpass import getpass
 
os.environ["DAPPIER_API_KEY"] = getpass("Введите API ключ Dappier: ")
os.environ["OPENAI_API_KEY"] = getpass("Введите API ключ OpenAI: ")

Инициализация инструментов Dappier

Создаем экземпляры инструментов Dappier для поиска в реальном времени и AI-рекомендаций, чтобы выполнять живые веб-запросы и получать персонализированные предложения статей.

from langchain_dappier import DappierRealTimeSearchTool
 
search_tool = DappierRealTimeSearchTool()
print("Инструмент поиска в реальном времени готов:", search_tool)
from langchain_dappier import DappierAIRecommendationTool
 
recommendation_tool = DappierAIRecommendationTool(
    data_model_id="dm_01j0pb465keqmatq9k83dthx34",
    similarity_top_k=3,
    ref="sportsnaut.com",
    num_articles_ref=2,
    search_algorithm="most_recent",
)
print("Инструмент рекомендаций готов:", recommendation_tool)

Создание модели чата OpenAI

Инициализируем модель GPT-3.5-turbo с температурой 0 для стабильных ответов и связываем её с инструментом поиска в реальном времени.

from langchain.chat_models import init_chat_model
 
llm = init_chat_model(
    model="gpt-3.5-turbo",
    model_provider="openai",
    temperature=0,
)
llm_with_tools = llm.bind_tools([search_tool])
print(" llm_with_tools готов")

Построение цепочки подсказок

Создаем цепочку с шаблоном подсказки, которая добавляет текущую дату и форматирует ввод пользователя и историю сообщений для модели.

import datetime
from langchain_core.prompts import ChatPromptTemplate
 
today = datetime.datetime.today().strftime("%Y-%m-%d")
prompt = ChatPromptTemplate([
    ("system", f"мы полезный ассистент. Сегодня {today}."),
    ("human", "{user_input}"),
    ("placeholder", "{messages}"),
])
 
llm_chain = prompt | llm_with_tools
print(" llm_chain построена")

Определение конечной цепочки инструментов

Определяем цепочку, которая отправляет ввод пользователя модели, обрабатывает вызовы инструментов и интегрирует их ответы для полного ответа.

from langchain_core.runnables import RunnableConfig, chain
 
@chain
def tool_chain(user_input: str, config: RunnableConfig):
    ai_msg = llm_chain.invoke({"user_input": user_input}, config=config)
    tool_msgs = search_tool.batch(ai_msg.tool_calls, config=config)
    return llm_chain.invoke(
        {"user_input": user_input, "messages": [ai_msg, *tool_msgs]},
        config=config
    )
 
print(" tool_chain определена")

Демонстрация запросов

Выполняем прямые запросы к инструментам поиска и рекомендаций, а также полный запрос с интегрированными инструментами.

res = search_tool.invoke({"query": "Что произошло на последнем Wrestlemania"})
print(" Поиск:", res)
 
rec = recommendation_tool.invoke({"query": "последние спортивные новости"})
print(" Рекомендации:", rec)
 
out = tool_chain.invoke("Кто выиграл последнюю Нобелевскую премию?")
print(" Результат цепочки:", out)

Это решение создает надежную основу для обогащения разговорного ИИ актуальной информацией из интернета и персонализированными рекомендациями из собственных данных. Пользователи могут настраивать параметры поиска и рекомендации под свои задачи и области применения.

🇬🇧

Switch Language

Read this article in English

Switch to English