Framework và nền tảng
LangChain
Tích hợp TokenLab với LangChain bằng chat và embeddings tương thích OpenAI tiêu chuẩn
Tổng quan
TokenLab hoạt động tốt với các tích hợp ChatOpenAI và OpenAIEmbeddings của LangChain khi bạn sử dụng bề mặt chat và embeddings tương thích OpenAI tiêu chuẩn.
Tài liệu LangChain hiện tại lưu ý rằng ChatOpenAI nhắm đến các định dạng request/response tương thích OpenAI chính thức. Nếu bạn cần các trường phản hồi không tiêu chuẩn, đặc thù theo nhà cung cấp, hãy sử dụng tích hợp LangChain dành riêng cho nhà cung cấp đó thay vì dựa vào ChatOpenAI.
Loại: Framework hoặc nền tảng
Đường chính: surface LangChain tiêu chuẩn tương thích OpenAI
Mức hỗ trợ: Hỗ trợ surface tiêu chuẩn
Trang này chủ ý chỉ bao phủ surface LangChain chuẩn theo hướng tương thích OpenAI, chứ không mở rộng sang các tính năng LangChain riêng theo nhà cung cấp ngoài phạm vi đó.
Cài đặt
pip install langchain langchain-openai langchain-community faiss-cpuCấu hình cơ bản
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="gpt-5.6-terra",
api_key="sk-your-tokenlab-key",
base_url="https://api.tokenlab.sh/v1",
)
response = llm.invoke("Explain TokenLab in one sentence.")
print(response.content)Sử dụng các model khác nhau
from langchain_openai import ChatOpenAI
gpt = ChatOpenAI(
model="gpt-5.6-terra",
api_key="sk-your-key",
base_url="https://api.tokenlab.sh/v1",
)
claude = ChatOpenAI(
model="claude-sonnet-5",
api_key="sk-your-key",
base_url="https://api.tokenlab.sh/v1",
)
gemini = ChatOpenAI(
model="gemini-3.5-flash",
api_key="sk-your-key",
base_url="https://api.tokenlab.sh/v1",
)
deepseek = ChatOpenAI(
model="deepseek-reasoner",
api_key="sk-your-key",
base_url="https://api.tokenlab.sh/v1",
)Lịch sử tin nhắn
from langchain_core.messages import HumanMessage, SystemMessage
messages = [
SystemMessage(content="You are a helpful assistant."),
HumanMessage(content="What is the capital of France?")
]
response = llm.invoke(messages)
print(response.content)Phát trực tuyến
for chunk in llm.stream("Write a short poem about coding."):
if chunk.content:
print(chunk.content, end="", flush=True)Embeddings
from langchain_openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings(
model="text-embedding-3-small",
api_key="sk-your-key",
base_url="https://api.tokenlab.sh/v1",
)
vector = embeddings.embed_query("Hello world")
print(vector[:5])Ví dụ RAG đơn giản
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
embeddings = OpenAIEmbeddings(
model="text-embedding-3-small",
api_key="sk-your-key",
base_url="https://api.tokenlab.sh/v1",
)
texts = [
"TokenLab provides one API for many AI models.",
"TokenLab supports OpenAI-compatible integrations."
]
vectorstore = FAISS.from_texts(texts, embeddings)
retriever = vectorstore.as_retriever()
prompt = ChatPromptTemplate.from_template(
"Answer using the context below.\\n\\nContext:\\n{context}\\n\\nQuestion:\\n{question}"
)
rag_chain = (
{"context": retriever, "question": RunnablePassthrough()}
| prompt
| llm
)
response = rag_chain.invoke("What does TokenLab provide?")
print(response.content)Tác nhân
Đối với các dự án agentic mới, LangChain khuyến nghị cân nhắc LangGraph để có khả năng kiểm soát tường minh hơn đối với các workflow chạy dài và sử dụng công cụ.
from langchain.agents import create_agent
from langchain_core.tools import tool
@tool
def search(query: str) -> str:
"""Search for information."""
return f"Search results for: {query}"
tools = [search]
agent = create_agent(
model=llm,
tools=tools,
system_prompt="You are a helpful assistant with access to tools.",
)
result = agent.invoke({
"messages": [{"role": "user", "content": "Search for TokenLab pricing"}]
})
print(result["messages"][-1].content)