الأطر والمنصات
LangChain
دمج TokenLab مع LangChain باستخدام واجهات chat و embeddings القياسية المتوافقة مع OpenAI
نظرة عامة
يعمل TokenLab بشكل جيد مع تكاملات ChatOpenAI و OpenAIEmbeddings في LangChain عندما تلتزم بواجهة chat و embeddings القياسية المتوافقة مع OpenAI.
تشير وثائق LangChain الحالية إلى أن ChatOpenAI يستهدف أشكال الطلب/الاستجابة الرسمية المتوافقة مع OpenAI. إذا كنت تحتاج إلى حقول استجابة غير قياسية وخاصة بمزوّد معين، فاستخدم تكامل LangChain خاصًا بذلك المزوّد بدلًا من الاعتماد على ChatOpenAI.
النوع: إطار أو منصة
المسار الرئيسي: السطح القياسي المتوافق مع OpenAI
مستوى الدعم: السطح القياسي مدعوم
تغطي هذه الصفحة عمدًا السطح القياسي المتوافق مع OpenAI في LangChain فقط، ولا تمتد إلى ميزات LangChain الأصلية الخاصة بالمزوّد خارج هذا النطاق.
التثبيت
pip install langchain langchain-openai langchain-community faiss-cpuالتكوين الأساسي
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)استخدام نماذج مختلفة
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",
)سجل الرسائل
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)البث
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])مثال RAG بسيط
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)الوكلاء
بالنسبة لمشاريع الوكلاء الجديدة، توصي LangChain بالنظر في LangGraph للحصول على تحكم أكثر وضوحًا في سير العمل طويل التشغيل والذي يستخدم الأدوات.
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)