Skip to main content
Valyu 允许 AI 应用和智能体搜索互联网及专有数据源,以获取适合 LLM 使用的相关信息。
本 notebook 介绍如何在 LangChain 中使用 Valyu 深度搜索工具。 首先,获取 Valyu API 密钥并将其设置为环境变量。在此注册可免费获得 $10 额度。

设置

该集成位于 langchain-valyu 包中。
pip install -qU langchain-valyu
为了使用该包,您还需要将 VALYU_API_KEY 环境变量设置为您的 Valyu API 密钥。
import os

valyu_api_key = os.environ["VALYU_API_KEY"]

实例化

现在可以实例化检索器: ValyuContextRetriever 可通过以下参数进行配置:
  • k: int = 5 每次查询返回的最大结果数。
  • search_type: str = "all" 搜索类型:'all''proprietary''web'。默认为 'all'
  • relevance_threshold: float = 0.5 文档被视为相关所需的最低相关性分数(0 到 1 之间)。默认为 0.5。
  • max_price: float = 20.0 每次查询愿意花费的最高价格(美元)。默认为 20.0。
  • start_date: Optional[str] = None 时间过滤的开始日期,格式为 YYYY-MM-DD(可选)。
  • end_date: Optional[str] = None 时间过滤的结束日期,格式为 YYYY-MM-DD(可选)。
  • client: Optional[Valyu] = None 可选的自定义 Valyu 客户端实例。如未提供,将在内部创建新客户端。
  • valyu_api_key: Optional[str] = None 您的 Valyu API 密钥。如未提供,检索器将查找 VALYU_API_KEY 环境变量。
from langchain_valyu import ValyuRetriever

retriever = ValyuRetriever(
    k=5,
    search_type="all",
    relevance_threshold=0.5,
    max_price=20.0,
    start_date="2024-01-01",
    end_date="2024-12-31",
    client=None,
    valyu_api_key=os.environ["VALYU_API_KEY"],
)

使用方法

query = "What are the benefits of renewable energy?"
docs = retriever.invoke(query)

for doc in docs:
    print(doc.page_content)
    print(doc.metadata)

在链中使用

我们可以轻松地将此检索器集成到链中。
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_openai import ChatOpenAI

prompt = ChatPromptTemplate.from_template(
    """Answer the question based only on the context provided.

Context: {context}

Question: {question}"""
)

llm = ChatOpenAI(model="gpt-4.1-mini")


def format_docs(docs):
    return "\n\n".join(doc.page_content for doc in docs)


chain = (
    {"context": retriever | format_docs, "question": RunnablePassthrough()}
    | prompt
    | llm
    | StrOutputParser()
)

API 参考

有关所有 Valyu Context API 功能和配置的详细文档,请参阅 API 参考:docs.valyu.network/overview