ValyuContext
Valyu 允许 AI 应用程序和代理在互联网和专有数据源中搜索相关的 LLM 就绪信息。
本笔记本介绍了如何在 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"]
实例
现在我们可以实例化我们的 retriever:
这ValyuContextRetriever可以使用几个参数进行配置:
-
k: int = 5
要为每个查询返回的排名靠前的结果数。 -
search_type: str = "all"
要执行的搜索类型。选项可能包括 “all”、“web”、“proprietary” 等,具体取决于您的用例。 -
similarity_threshold: float = 0.4
将文档视为相关所需的最低相似度分数(介于 0 和 1 之间)。 -
query_rewrite: bool = False
是否启用查询的自动重写以改善搜索结果。 -
max_price: float = 20.0您愿意为每个查询支付的最高价格 (以美元为单位)。 -
client: Optional[Valyu] = None
可选的自定义 Valyu 客户端实例。如果未提供,将在内部创建新客户端。 -
valyu_api_key: Optional[str] = None
您的 Valyu API 密钥。如果未提供,检索器将查找VALYU_API_KEY环境变量。
from langchain_valyu import ValyuContextRetriever
retriever = ValyuContextRetriever(
k=5,
search_type="all",
similarity_threshold=0.4,
query_rewrite=False,
max_price=20.0,
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-4o-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 参考:https://docs.valyu.network/overview