ValyuContext
Valyu allows AI applications and agents to search the internet and proprietary data sources for relevant LLM ready information.
本笔记本介绍了如何在 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"
要执行的搜索类型。选项可能包括“全部”、“网络”、“专有”等,具体取决于您的使用场景。 -
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