🦜อย่างเป็นทางการ

การเชื่อมต่อ LangChain

Drop-in retriever สำหรับ LangChain RAG Pipeline พร้อมรองรับ Tracing เต็มรูปแบบ

01ภาพรวม 60 วินาที

SeiznRetriever เป็นตัวทดแทน Drop-in สำหรับ LangChain Retriever ทุกตัว ให้การค้นหาเวกเตอร์พร้อม Tracing, Caching และ Reranking ในตัว

  • ใช้งานร่วมกับ LangChain Chain และ Agent ทั้งหมดได้
  • Tracing ในตัวสำหรับทุกการค้นคืน
  • รองรับการกรอง การจัดอันดับใหม่ และ Hybrid Search

02การติดตั้ง

ติดตั้ง Seizn SDK ควบคู่กับ LangChain

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

# Python
pip install seizn langchain

03ตัวอย่าง 5 นาที

สร้าง RAG Chain ด้วย SeiznRetriever ในโค้ดเพียงไม่กี่บรรทัด

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"))

04เคล็ดลับสำหรับ Production

เปิดใช้งาน Caching

ลดเวลาตอบสนองและต้นทุนด้วยการแคชคำค้นหาที่ซ้ำกัน

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

เปิดใช้งาน Reranking

ปรับปรุงคุณภาพผลลัพธ์ด้วย 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,
  },
});

การกรองตาม Metadata

กรองผลลัพธ์ตามฟิลด์ Metadata ก่อนการค้นหาเวกเตอร์

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

05การแก้ไขปัญหา

ข้อผิดพลาดสาเหตุวิธีแก้ไข
SEIZN_AUTH_ERRORAPI Key ไม่ถูกต้องหรือไม่มีตรวจสอบตัวแปรสภาพแวดล้อม SEIZN_API_KEY
SEIZN_RATE_LIMITมีคำขอมากเกินไปต่อวินาทีใช้ Exponential Backoff หรืออัปเกรดแผน
Empty resultsThreshold สูงเกินไปหรือไม่มีเอกสารที่ตรงกันลด Threshold หรือตรวจสอบเนื้อหาชุดข้อมูล