اتصال LangChain به چابکان
کلاس ChatOpenAI در LangChain اجازه تعیین base_url سفارشی را میدهد و برای قابلیتهای استاندارد OpenAI-compatible چابکان مناسب است.
LangChain چیست؟
LangChain یک چارچوب توسعه برنامههای مبتنی بر مدل زبانی است. این چارچوب اجزایی برای پیامها، promptها، مدلهای chat، ابزارها، streaming و اتصال مراحل مختلف برنامه فراهم میکند و در Python و JavaScript/TypeScript قابل استفاده است.
LangChain زمانی مفید است که برنامه شما فراتر از یک درخواست ساده API باشد؛ برای مثال دستیار متصل به داده داخلی، زنجیره پردازش سند، عامل ابزارمحور یا سرویسی که باید provider مدل را قابل تعویض نگه دارد. اتصال این صفحه فقط لایه مدل را به چابکان وصل میکند. حافظه، retrieval، vector database، اجرای ابزار و سیاست دسترسی همچنان باید در معماری برنامه شما طراحی شوند.
برنامه LangChain → ChatOpenAI → API چابکان → مدل انتخابی
۱. آمادهکردن environment
- macOS · Linux · WSL
- Windows · PowerShell
export CHABOKAN_AI_API_KEY="sk-chbk-کلید-واقعی-شما"
export CHABOKAN_AI_MODEL="openai/gpt-4o-mini"
$env:CHABOKAN_AI_API_KEY = "sk-chbk-کلید-واقعی-شما"
$env:CHABOKAN_AI_MODEL = "openai/gpt-4o-mini"
Model ID نمونه را با شناسه دقیق «مدلهای قابل استفاده» جایگزین کنید.
۲. Python
بسته را نصب کنید:
python -m pip install -U langchain-openai
نمونه گفتوگوی ساده:
import os
from langchain_openai import ChatOpenAI
model = ChatOpenAI(
model=os.environ["CHABOKAN_AI_MODEL"],
api_key=os.environ["CHABOKAN_AI_API_KEY"],
base_url="https://ai.chabokan.net/v1",
temperature=0,
timeout=60,
max_retries=2,
)
response = model.invoke("فقط عبارت «اتصال برقرار است» را پاسخ بده.")
print(response.content)
برای streaming:
for chunk in model.stream("در سه جمله کوتاه، caching را توضیح بده."):
print(chunk.content, end="", flush=True)
۳. JavaScript و TypeScript
بسته را نصب کنید:
npm install @langchain/openai @langchain/core
نمونه فراخوانی:
import { ChatOpenAI } from "@langchain/openai";
const model = new ChatOpenAI({
model: process.env.CHABOKAN_AI_MODEL,
apiKey: process.env.CHABOKAN_AI_API_KEY,
temperature: 0,
maxRetries: 2,
timeout: 60_000,
configuration: {
baseURL: "https://ai.chabokan.net/v1",
},
});
const response = await model.invoke(
"فقط عبارت «اتصال برقرار است» را پاسخ بده."
);
console.log(response.content);
۴. Tool calling
ابتدا مدلی انتخاب کنید که در /v1/models مقدار tools را در supported_parameters داشته باشد.
نمونه Python:
from langchain_core.tools import tool
@tool
def get_order_status(order_id: str) -> str:
"""Return a demonstration order status."""
return f"Order {order_id} is being processed"
model_with_tools = model.bind_tools([get_order_status])
response = model_with_tools.invoke("وضعیت سفارش 123 را بررسی کن.")
print(response.tool_calls)
این نمونه فقط درخواست tool را نشان میدهد. اجرای واقعی ابزار، اعتبارسنجی آرگومانها و بازگرداندن نتیجه به مدل مسئولیت برنامه شما یا agent runtime است. هیچ ورودی تولیدشده توسط مدل را بدون کنترل به shell، دیتابیس یا عملیات مالی نفرستید.
۵. آزمون مستقل از LangChain
اگر برنامه خطا میدهد، ابتدا endpoint را مستقیم آزمایش کنی د:
curl --fail-with-body https://ai.chabokan.net/v1/chat/completions \
-H "Authorization: Bearer $CHABOKAN_AI_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model\":\"$CHABOKAN_AI_MODEL\",\"messages\":[{\"role\":\"user\",\"content\":\"سلام\"}]}"
اگر cURL موفق و LangChain ناموفق است، نسخه بسته، مقدار configuration.baseURL یا پارامترهای اضافی را بررسی کنید.