跳转到主要内容

概述

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_urlapi_key 接入 Crazyrouter,无需额外适配。