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(Retrieval-Augmented Generation)
単一のRAGパイプラインで埋め込みと生成の両方にTokSpanを使用します:
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 | OpenAIクライアント設定で base_url を構成 |
| Flowise | TokSpanベースURLでカスタムOpenAI互換認証情報を追加 |
| Dify | TokSpanエンドポイントでOpenAI互換モデルプロバイダーを追加 |