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 SDKcreateOpenAI({ baseURL: 'https://api.tokspan.com/v1', apiKey: 'sk-...' })
CrewAIУстановите переменную окружения OPENAI_API_BASE
AutoGenНастройте base_url в конфигурации клиента OpenAI
FlowiseДобавьте пользовательские учётные данные OpenAI-совместимого типа с базовым URL TokSpan
DifyДобавьте OpenAI-совместимого провайдера моделей с конечной точкой TokSpan