Les agents de génération augmentée par récupération (RAG) améliorent la qualité des réponses en ancrant les réponses des LLM dans des documents récupérés. La plupart des pipelines RAG utilisent des magasins de vecteurs statiques qui deviennent obsolètes. En branchant Scavio dans un agent LangChain en tant qu'outil de récupération, l'agent peut récupérer en direct des résultats de recherche Google, des transcriptions YouTube ou des données de produits Amazon à la demande. Ce tutoriel installe langchain-scavio, l'intègre dans un agent ReAct LangChain et exécute une question nécessitant une récupération en direct pour répondre avec précision.
Prérequis
- Python 3.10 ou supérieur
- pip install langchain langchain-scavio langchain-openai
- Une clé API Scavio
- Une clé API OpenAI (ou remplacez par tout LLM compatible LangChain)
Parcours
Étape 1: Installer les dépendances
Installer LangChain, le package d'intégration Scavio et un fournisseur de LLM. Le package langchain-scavio expose ScavioSearch en tant qu'outil LangChain.
pip install langchain langchain-scavio langchain-openaiÉtape 2: Importer et configurer ScavioSearch
ScavioSearch encapsule l'API Scavio en tant que BaseTool LangChain. Transmettez votre clé API et éventuellement restreignez à une plateforme spécifique.
from langchain_scavio import ScavioSearch
search_tool = ScavioSearch(
api_key="your_scavio_api_key",
platform="google",
country_code="us",
max_results=5
)Étape 3: Créer l'agent ReAct
Lier l'outil de recherche à un agent LangChain avec un LLM OpenAI. L'agent décidera quand appeler l'outil de recherche.
from langchain.agents import create_react_agent, AgentExecutor
from langchain_openai import ChatOpenAI
from langchain import hub
llm = ChatOpenAI(model="gpt-4o", temperature=0)
prompt = hub.pull("hwchase17/react")
agent = create_react_agent(llm, [search_tool], prompt)
executor = AgentExecutor(agent=agent, tools=[search_tool], verbose=True)Étape 4: Exécuter l'agent
Invoquer l'agent avec une question nécessitant des informations en direct. Il appellera Scavio, récupérera les résultats et synthétisera une réponse.
result = executor.invoke({"input": "What are the latest Python web frameworks released in 2026?"})
print(result["output"])Exemple Python
import os
from langchain_scavio import ScavioSearch
from langchain.agents import create_react_agent, AgentExecutor
from langchain_openai import ChatOpenAI
from langchain import hub
os.environ["OPENAI_API_KEY"] = "your_openai_key"
os.environ["SCAVIO_API_KEY"] = "your_scavio_api_key"
search_tool = ScavioSearch(
api_key=os.environ["SCAVIO_API_KEY"],
platform="google",
country_code="us",
max_results=5
)
llm = ChatOpenAI(model="gpt-4o", temperature=0)
prompt = hub.pull("hwchase17/react")
agent = create_react_agent(llm, [search_tool], prompt)
executor = AgentExecutor(agent=agent, tools=[search_tool], verbose=True)
if __name__ == "__main__":
result = executor.invoke({"input": "What are the latest AI frameworks released in 2026?"})
print(result["output"])Exemple JavaScript
// LangChain.js integration with Scavio via HTTP tool
const { ChatOpenAI } = require("@langchain/openai");
const { DynamicTool } = require("@langchain/core/tools");
const { AgentExecutor, createReactAgent } = require("langchain/agents");
const { pull } = require("langchain/hub");
const API_KEY = process.env.SCAVIO_API_KEY;
const searchTool = new DynamicTool({
name: "scavio_search",
description: "Search the web for current information",
func: async (query) => {
const res = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ query, country_code: "us" })
});
const data = await res.json();
return JSON.stringify(data.organic_results?.slice(0, 3) || []);
}
});
async function main() {
const llm = new ChatOpenAI({ model: "gpt-4o" });
const prompt = await pull("hwchase17/react");
const agent = await createReactAgent({ llm, tools: [searchTool], prompt });
const executor = new AgentExecutor({ agent, tools: [searchTool] });
const result = await executor.invoke({ input: "Latest AI news in 2026?" });
console.log(result.output);
}
main().catch(console.error);Sortie attendue
{
"input": "What are the latest AI frameworks released in 2026?",
"output": "Based on search results, several AI frameworks launched in 2026 including...",
"intermediate_steps": [
{
"action": "scavio_search",
"action_input": "AI frameworks released 2026",
"observation": "[{\"title\": \"Top AI Frameworks 2026\", ..."}]
}
]
}