Valyu는 AI 애플리케이션과 에이전트가 인터넷과 독점 데이터 소스를 검색하여 LLM에 적합한 관련 정보를 찾을 수 있도록 합니다.
이 노트북은 LangChain에서 Valyu deep search 도구를 사용하는 방법을 다룹니다. 먼저 Valyu API 키를 받아서 환경 변수로 추가하세요. 여기에서 가입하여 $10 무료 크레딧을 받으세요.

Setup

이 통합은 langchain-valyu 패키지에 포함되어 있습니다.
pip install -qU langchain-valyu
패키지를 사용하려면 VALYU_API_KEY 환경 변수를 Valyu API 키로 설정해야 합니다.
import os

valyu_api_key = os.environ["VALYU_API_KEY"]

Instantiation

이제 retriever를 인스턴스화할 수 있습니다: 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 쿼리당 지불할 의향이 있는 최대 가격(USD)입니다. 기본값은 20.0입니다.
  • start_date: Optional[str] = None YYYY-MM-DD 형식의 시간 필터링을 위한 시작 날짜(선택 사항)입니다.
  • end_date: Optional[str] = None YYYY-MM-DD 형식의 시간 필터링을 위한 종료 날짜(선택 사항)입니다.
  • client: Optional[Valyu] = None 선택적 사용자 정의 Valyu client 인스턴스입니다. 제공되지 않으면 내부적으로 새 client가 생성됩니다.
  • valyu_api_key: Optional[str] = None Valyu API 키입니다. 제공되지 않으면 retriever는 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"],
)

Usage

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

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

Use within a chain

이 retriever를 chain에 쉽게 결합할 수 있습니다.
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 reference

모든 Valyu Context API 기능 및 구성에 대한 자세한 문서는 API reference를 참조하세요: docs.valyu.network/overview
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I