이 문서는 LangChain을 사용하여 Baseten embedding model을 시작하는 데 도움을 드립니다. BasetenEmbeddings의 기능 및 구성 옵션에 대한 자세한 문서는 API reference를 참조하세요.

Overview

Baseten은 프로덕션 애플리케이션을 위해 설계된 추론 기능을 제공합니다. Baseten Inference Stack을 기반으로 구축된 이러한 API는 주요 오픈 소스 또는 커스텀 모델에 대해 엔터프라이즈급 성능과 안정성을 제공합니다: https://www.baseten.co/library/.

Integration details

Setup

Baseten embedding model에 액세스하려면 Baseten 계정을 생성하고 API key를 받은 다음 langchain-baseten integration package를 설치해야 합니다. Baseten embedding은 dedicated model로만 사용할 수 있습니다. 이 integration을 사용하기 전에 Baseten model library에서 embedding model을 배포해야 합니다. embedding 기능은 최적화된 성능을 위해 Baseten의 Performance Client를 사용하며, 이는 dependency로 자동으로 포함됩니다.

Credentials

https://app.baseten.co로 이동하여 Baseten에 가입하고 API key를 생성하세요. 완료한 후 BASETEN_API_KEY environment variable을 설정하세요:
import getpass
import os

if not os.getenv("BASETEN_API_KEY"):
    os.environ["BASETEN_API_KEY"] = getpass.getpass("Enter your Baseten API key: ")
model 호출의 자동 추적을 활성화하려면 LangSmith API key를 설정하세요:
os.environ["LANGSMITH_TRACING"] = "true"
os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")

Installation

LangChain Baseten integration은 langchain-baseten package에 있습니다:
pip install -qU langchain-baseten

Instantiation

이제 배포된 model의 URL을 사용하여 embeddings object를 인스턴스화할 수 있습니다:
from langchain_baseten import BasetenEmbeddings

embeddings = BasetenEmbeddings(
    model_url="https://model-<id>.api.baseten.co/environments/production/sync",  # Your model URL
    api_key="your-api-key",  # Or set BASETEN_API_KEY env var
)

Indexing and Retrieval

Embedding model은 데이터 인덱싱과 나중에 검색하는 과정 모두에서 retrieval-augmented generation (RAG) flow에 자주 사용됩니다. 자세한 지침은 RAG tutorials를 참조하세요. 아래에서는 위에서 초기화한 embeddings object를 사용하여 데이터를 인덱싱하고 검색하는 방법을 확인할 수 있습니다. 이 예제에서는 InMemoryVectorStore에서 샘플 문서를 인덱싱하고 검색합니다.
# Create a vector store with a sample text
from langchain_core.vectorstores import InMemoryVectorStore

text = "LangChain is the framework for building context-aware reasoning applications"

vectorstore = InMemoryVectorStore.from_texts(
    [text],
    embedding=embeddings,
)

# Use the vectorstore as a retriever
retriever = vectorstore.as_retriever()

# Retrieve the most similar text
retrieved_documents = retriever.invoke("What is LangChain?")

# show the retrieved document's content
retrieved_documents[0].page_content
'LangChain is the framework for building context-aware reasoning applications'

Direct Usage

내부적으로 vectorstore와 retriever 구현은 embeddings.embed_documents(...)embeddings.embed_query(...)를 호출하여 각각 from_texts와 retrieval invoke 작업에 사용되는 텍스트에 대한 embedding을 생성합니다. 이러한 method를 직접 호출하여 자신의 사용 사례에 맞는 embedding을 얻을 수 있습니다.

Embed single texts

embed_query를 사용하여 단일 텍스트 또는 문서를 embedding할 수 있습니다:
single_vector = embeddings.embed_query(text)
print(str(single_vector)[:100])  # Show the first 100 characters of the vector
[0.013201533816754818, 0.02222288027405739, -0.036066457629203796, 0.027374643832445145, -0.01692997

Embed multiple texts

embed_documents를 사용하여 여러 텍스트를 embedding할 수 있습니다:
text2 = (
    "LangGraph is a library for building stateful, multi-actor applications with LLMs"
)
two_vectors = embeddings.embed_documents([text, text2])
for vector in two_vectors:
    print(str(vector)[:100])  # Show the first 100 characters of the vector
[0.013201533816754818, 0.02222288027405739, -0.036066457629203796, 0.027374643832445145, -0.01692997
[0.018247194588184357, 0.007369577884674072, -0.005529594141989946, 0.022589316591620445, -0.0699259

API Reference

BasetenEmbeddings의 기능 및 구성 옵션에 대한 자세한 문서는 API reference를 참조하세요.
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I