概述
LangChain 是最流行的 LLM 应用开发框架,支持 Python 和 JavaScript。Python 配置
安装
复制
pip install langchain-openai langchain-community
Chat Model
复制
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="gpt-4o",
api_key="sk-xxx",
base_url="https://crazyrouter.com/v1",
temperature=0.7
)
response = llm.invoke("什么是 LangChain?")
print(response.content)
Embeddings
复制
from langchain_openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings(
model="text-embedding-3-large",
api_key="sk-xxx",
base_url="https://crazyrouter.com/v1"
)
vectors = embeddings.embed_documents(["文本一", "文本二"])
链式调用
复制
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
llm = ChatOpenAI(
model="gpt-4o",
api_key="sk-xxx",
base_url="https://crazyrouter.com/v1"
)
prompt = ChatPromptTemplate.from_template("用简单的语言解释 {topic}")
chain = prompt | llm | StrOutputParser()
result = chain.invoke({"topic": "量子计算"})
print(result)
RAG 示例
复制
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
llm = ChatOpenAI(model="gpt-4o", api_key="sk-xxx", base_url="https://crazyrouter.com/v1")
embeddings = OpenAIEmbeddings(model="text-embedding-3-large", api_key="sk-xxx", base_url="https://crazyrouter.com/v1")
# 创建向量存储
texts = ["Crazyrouter 支持 300+ AI 模型", "API 按量计费,灵活实惠"]
vectorstore = FAISS.from_texts(texts, embeddings)
retriever = vectorstore.as_retriever()
# RAG 链
prompt = ChatPromptTemplate.from_template("根据以下上下文回答问题:\n{context}\n\n问题:{question}")
chain = {"context": retriever, "question": RunnablePassthrough()} | prompt | llm
result = chain.invoke("Crazyrouter 支持多少模型?")
print(result.content)
JavaScript 配置
复制
npm install @langchain/openai
复制
import { ChatOpenAI } from '@langchain/openai';
const llm = new ChatOpenAI({
modelName: 'gpt-4o',
openAIApiKey: 'sk-xxx',
configuration: {
baseURL: 'https://crazyrouter.com/v1',
},
});
const response = await llm.invoke('你好');
console.log(response.content);
LangChain 的所有基于 OpenAI 的组件都可以通过修改
base_url 和 api_key 接入 Crazyrouter,无需额外适配。