Una guía de codificación paso a paso para integrar las herramientas de búsqueda y recomendación en tiempo real de Dappier AI con la API de chat de Operai

En este tutorial, aprenderemos cómo aprovechar el poder de AI más eleganteun conjunto de herramientas de búsqueda y recomendación en tiempo real, para mejorar nuestras aplicaciones de conversación. Al combinar el control de la vanguardia de Dappier con su AirecommendationTool, podemos consultar la información más reciente de en toda la web y superficie sugerencias de artículos personalizados de modelos de datos personalizados. Le guiamos paso a paso a través de la configuración de nuestro entorno de Google Colab, instalando dependencias, carga de forma segura las teclas API e inicializando cada módulo más elegante. Luego integraremos estas herramientas con un modelo de chat de OpenAI (p. Ej., GPT-3.5-TURBO), construiremos una cadena de solicitud compuesta y ejecutaremos consultas de extremo a extremo, todas dentro de nueve celdas de cuaderno conciso. Ya sea que necesitemos una recuperación de noticias actualizada o la curación de contenido impulsado por la IA, este tutorial proporciona un marco flexible para construir experiencias de chat inteligentes e impulsadas por datos.

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

Bottamos nuestro entorno de Colab instalando las bibliotecas Core Langchain, tanto las extensiones más elegantes como las integraciones de la comunidad, junto con el cliente oficial de Operai. Con estos paquetes en su lugar, tendremos un acceso sin problemas a las herramientas de búsqueda y recomendación de Dappier en tiempo real, los últimos tiempos de ejecución de Langchain y la API de OpenAI, todo en un entorno.

import os
from getpass import getpass


os.environ["DAPPIER_API_KEY"] = getpass("Enter our Dappier API key: ")


os.environ["OPENAI_API_KEY"] = getpass("Enter our OpenAI API key: ")

Capturamos de forma segura nuestras credenciales de la API más elegante y OpenAI en tiempo de ejecución, evitando así la codificación dura de las claves sensibles en nuestro cuaderno. Al usar GetPass, las indicaciones aseguran que nuestras entradas permanezcan ocultas, y establecerlas como variables de entorno las hace a disposición de todas las celdas posteriores sin exponerlas en los registros.

from langchain_dappier import DappierRealTimeSearchTool


search_tool = DappierRealTimeSearchTool()
print("Real-time search tool ready:", search_tool)

Importamos el módulo de búsqueda en tiempo real de Dappier y creamos una instancia del DappierRealTimesearchTool, permitiendo que nuestro cuaderno ejecute consultas web en vivo. La declaración de impresión confirma que la herramienta se ha inicializado correctamente y está lista para manejar las solicitudes de búsqueda.

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 ready:", recommendation_tool)

Configuramos el motor de recomendación de Dappier a I AI especificando nuestro modelo de datos personalizados, el número de artículos similares para recuperar y el dominio de origen para el contexto. La instancia de DapperairecommendationTool ahora utilizará el algoritmo “Most_recent” para atraer los artículos relevantes de Top-K (aquí, dos) de nuestra referencia especificada, listo para sugerencias de contenido basadas en consultas.

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 ready")

Creamos una instancia de modelo de chat de OpenAI que usa GPT-3.5-Turbo con una temperatura de 0 para garantizar respuestas consistentes, y luego vinculamos la herramienta de búsqueda inicializada previamente para que el LLM pueda invocar búsquedas en tiempo real. La declaración de impresión final confirma que nuestro LLM está listo para llamar a las herramientas de Dappier dentro de nuestros flujos de conversación.

import datetime
from langchain_core.prompts import ChatPromptTemplate


today = datetime.datetime.today().strftime("%Y-%m-%d")
prompt = ChatPromptTemplate([
    ("system", f"we are a helpful assistant. Today is {today}."),
    ("human", "{user_input}"),
    ("placeholder", "{messages}"),
])


llm_chain = prompt | llm_with_tools
print("✅ llm_chain built")

Construimos la “cadena” conversacional creando primero una placa de chatPromptTtemplate que inyecta la fecha actual en un mensaje del sistema y define las ranuras para la entrada del usuario y los mensajes anteriores. Al tuber la plantilla (|) en nuestro LLM_With_Tools, creamos una LLM_Chain que formatea automáticamente las indicaciones, invoca el LLM (con capacidad de búsqueda en tiempo real) y maneja las respuestas en un flujo de trabajo sin costuras. La impresión final confirma que la cadena está lista para generar interacciones de extremo a extremo.

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 defined")

Definimos una herramienta de extremo a extremo que primero envía nuestro indicador al LLM (capturando las llamadas de herramienta solicitadas), luego ejecutan esas llamadas a través de Search_Tool.Batch, y finalmente alimenta tanto el mensaje inicial de la IA como la herramienta devuelve a la LLM para una respuesta cohesiva. El decorador @chain transforma esto en una sola tubería ejecutable, lo que nos permite simplemente llamar a tool_chain.invoke (…) para manejar tanto el pensamiento como la búsqueda en un solo paso.

res = search_tool.invoke({"query": "What happened at the last Wrestlemania"})
print("🔍 Search:", res)

Demostramos una consulta directa al motor de búsqueda en tiempo real de Dappier, preguntando “lo que sucedió en el último WrestleMania” e imprime inmediatamente el resultado estructurado. Muestra con qué facilidad podemos aprovechar Search_Tool.Invoke para obtener información actualizada e inspeccionar la respuesta sin procesar en nuestro cuaderno.

rec = recommendation_tool.invoke({"query": "latest sports news"})
print("📄 Recommendation:", rec)


out = tool_chain.invoke("Who won the last Nobel Prize?")
print("🤖 Chain output:", out)

Finalmente, exhibimos nuestra recomendación y flujos de trabajo de cadena completa en acción. Primero, llama a Recomendation_Tool.Invoke con “Últimas noticias deportivas” para obtener artículos relevantes de nuestro modelo de datos personalizados, luego imprime esas sugerencias. A continuación, ejecuta la herramienta_chain.invoke (“¿Quién ganó el último Premio Nobel?”) Para realizar una consulta LLM de extremo a extremo combinada con la búsqueda en tiempo real, imprimir la respuesta sintetizada de la IA e integrar datos en vivo.

En conclusión, ahora tenemos una línea de base robusta para integrar las capacidades de IA más elegantes en cualquier flujo de trabajo conversacional. Hemos visto cómo la búsqueda en tiempo real de Dappier sin esfuerzo permite que nuestro LLM acceda a datos nuevos, mientras que la herramienta de recomendación nos permite entregar ideas contextualmente relevantes de fuentes de datos patentadas. Desde aquí, podemos personalizar los parámetros de búsqueda (por ejemplo, filtros de consulta de refinación) o configuraciones de recomendación de ajuste fino (por ejemplo, ajustar umbrales de similitud y dominios de referencia) para adaptarse a nuestro dominio.


Mira el Plataforma más elegante y Cuaderno aquí. Además, no olvides seguirnos Gorjeo y únete a nuestro Canal de telegrama y LinkedIn GRsalpicar. No olvides unirte a nuestro 90k+ ml de subreddit.

🔥 [Register Now] Conferencia virtual de Minicon sobre AI agente: registro gratuito + Certificado de asistencia + Evento corto de 4 horas (21 de mayo, 9 am- 1 pm PST) + Hands on Workshop


Nikhil es consultor interno en MarktechPost. Está buscando un doble grado integrado en materiales en el Instituto Indio de Tecnología, Kharagpur. Nikhil es un entusiasta de AI/ML que siempre está investigando aplicaciones en campos como biomateriales y ciencias biomédicas. Con una sólida experiencia en la ciencia material, está explorando nuevos avances y creando oportunidades para contribuir.