🦜Chính thức

Tích hợp LangChain

Drop-in retriever cho pipeline RAG LangChain với hỗ trợ tracing đầy đủ.

01Tổng quan 60 giây

SeiznRetriever là giải pháp thay thế drop-in cho bất kỳ retriever LangChain nào. Cung cấp tìm kiếm vector với tracing, caching và reranking tích hợp.

  • Tương thích với tất cả chain và agent LangChain
  • Tracing tích hợp cho mọi thao tác truy xuất
  • Hỗ trợ lọc, reranking và hybrid search

02Cài đặt

Cài đặt Seizn SDK cùng với LangChain.

Installationbash
# TypeScript / JavaScript
npm install seizn @langchain/core

# Python
pip install seizn langchain

03Ví dụ 5 phút

Tạo RAG chain với SeiznRetriever chỉ trong vài dòng mã.

TypeScripttypescript
import { SeiznRetriever } from 'seizn/langchain';
import { ChatOpenAI } from '@langchain/openai';
import { createRetrievalChain } from 'langchain/chains/retrieval';
import { createStuffDocumentsChain } from 'langchain/chains/combine_documents';
import { ChatPromptTemplate } from '@langchain/core/prompts';

// Initialize the Seizn retriever
const retriever = new SeiznRetriever({
  apiKey: process.env.SEIZN_API_KEY,
  dataset: 'my-docs',
  topK: 5,
  threshold: 0.7,
});

// Create a RAG chain
const llm = new ChatOpenAI({ model: 'gpt-4' });

const prompt = ChatPromptTemplate.fromTemplate(`
Answer the question based on the following context:
{context}

Question: {input}
`);

const documentChain = await createStuffDocumentsChain({ llm, prompt });
const retrievalChain = await createRetrievalChain({
  combineDocsChain: documentChain,
  retriever,
});

// Run the chain
const response = await retrievalChain.invoke({
  input: 'How do I configure rate limiting?',
});

console.log(response.answer);
// Trace ID available for debugging
console.log('Trace:', response.seiznTrace);
Pythonpython
import os
from seizn.langchain import SeiznRetriever
from langchain_openai import ChatOpenAI
from langchain.chains import create_retrieval_chain
from langchain.chains.combine_documents import create_stuff_documents_chain
from langchain_core.prompts import ChatPromptTemplate

# Initialize the Seizn retriever
retriever = SeiznRetriever(
    api_key=os.environ["SEIZN_API_KEY"],
    dataset="my-docs",
    top_k=5,
    threshold=0.7,
)

# Create a RAG chain
llm = ChatOpenAI(model="gpt-4")

prompt = ChatPromptTemplate.from_template("""
Answer the question based on the following context:
{context}

Question: {input}
""")

document_chain = create_stuff_documents_chain(llm, prompt)
retrieval_chain = create_retrieval_chain(retriever, document_chain)

# Run the chain
response = retrieval_chain.invoke({
    "input": "How do I configure rate limiting?"
})

print(response["answer"])
# Trace ID available for debugging
print("Trace:", response.get("seizn_trace"))

04Mẹo cho Production

Bật Caching

Giảm độ trễ và chi phí bằng cách cache các truy vấn lặp lại.

typescript
const retriever = new SeiznRetriever({
  apiKey: process.env.SEIZN_API_KEY,
  dataset: 'my-docs',
  cache: {
    enabled: true,
    ttl: 3600, // 1 hour
  },
});

Bật Reranking

Cải thiện chất lượng kết quả với cross-encoder reranking.

typescript
const retriever = new SeiznRetriever({
  apiKey: process.env.SEIZN_API_KEY,
  dataset: 'my-docs',
  rerank: {
    enabled: true,
    model: 'cohere-rerank-v3',
    topN: 3,
  },
});

Lọc Metadata

Lọc kết quả theo trường metadata trước khi tìm kiếm vector.

typescript
const retriever = new SeiznRetriever({
  apiKey: process.env.SEIZN_API_KEY,
  dataset: 'my-docs',
  filter: {
    category: 'api-docs',
    language: 'en',
  },
});

05Xử lý sự cố

LỗiNguyên nhânGiải pháp
SEIZN_AUTH_ERRORAPI key không hợp lệ hoặc thiếuKiểm tra biến môi trường SEIZN_API_KEY
SEIZN_RATE_LIMITQuá nhiều yêu cầu mỗi giâyÁp dụng exponential backoff hoặc nâng cấp gói
Empty resultsThreshold quá cao hoặc không có tài liệu phù hợpGiảm threshold hoặc kiểm tra nội dung dataset