SDK и интеграция
LangChain
Используйте TokSpan как провайдера моделей LangChain для RAG, агентов, структурированного вывода и вызова инструментов — с доступом ко всем моделям через единую конечную точку.
Настройка
TokSpan работает как прямая замена провайдера ChatOpenAI. Просто измените openai_api_base:
python
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="gpt-4o",
openai_api_key="sk-your-key",
openai_api_base="https://api.tokspan.com/v1",
temperature=0.7,
)Переключение моделей: Измените
model="gpt-4o" на model="claude-opus-4-8" или любой другой ID модели — ваш код LangChain останется неизменным. Не требуется путей кода, специфичных для провайдера.Базовая цепочка (LCEL)
python
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
prompt = ChatPromptTemplate.from_messages([
("system", "You are a helpful assistant."),
("user", "{input}"),
])
chain = prompt | llm | StrOutputParser()
response = chain.invoke({"input": "Explain quantum computing in simple terms."})
print(response)RAG (генерация с дополненной выборкой)
Используйте TokSpan как для эмбеддингов, так и для генерации в едином RAG-пайплайне:
python
from langchain_core.documents import Document
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
# 1. Embed your documents
embeddings = OpenAIEmbeddings(
model="text-embedding-3-large",
openai_api_key="sk-your-key",
openai_api_base="https://api.tokspan.com/v1",
)
# 2. Split and store (use a vector DB for production)
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
docs = text_splitter.create_documents([your_text])
vector_store = FAISS.from_documents(docs, embeddings)
# 3. Retrieve + generate
from langchain.chains import create_retrieval_chain
from langchain.chains.combine_documents import create_stuff_documents_chain
qa_chain = create_retrieval_chain(vector_store.as_retriever(), create_stuff_documents_chain(llm, prompt))
result = qa_chain.invoke({"input": "What is the refund policy?"})Агенты с вызовом инструментов
Создавайте агентов, которые могут вызывать ваши функции — все модели с поддержкой function calling работают с этим паттерном:
python
from langchain.agents import create_tool_calling_agent, AgentExecutor
def get_weather(city: str) -> str:
return f"Weather in {city}: 22°C, partly cloudy"
tools = [get_weather]
agent = create_tool_calling_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools)
result = executor.invoke({"input": "What's the weather in Tokyo?"})
print(result["output"])Другие совместимые библиотеки
Каждая библиотека, совместимая с OpenAI, работает с TokSpan — просто измените базовый URL:
| Библиотека | Способ настройки |
|---|---|
| LlamaIndex | Установите переменную окружения OPENAI_API_BASE="https://api.tokspan.com/v1" |
| Vercel AI SDK | createOpenAI({ baseURL: 'https://api.tokspan.com/v1', apiKey: 'sk-...' }) |
| CrewAI | Установите переменную окружения OPENAI_API_BASE |
| AutoGen | Настройте base_url в конфигурации клиента OpenAI |
| Flowise | Добавьте пользовательские учётные данные OpenAI-совместимого типа с базовым URL TokSpan |
| Dify | Добавьте OpenAI-совместимого провайдера моделей с конечной точкой TokSpan |