API中转服务安全吗?如何选择可信赖的中转平台

Category:热门活动, 技术交流Published:Estimated reading time:23min
Author:sodope llm

LangChain是目前最流行的AI应用开发框架,提供了链式调用、工具调用、记忆管理、RAG检索等一系列高级功能。将Claude API与LangChain结合,可以快速构建生产级别的智能Agent应用。

通过jiekou.ai中转服务,国内开发者可以直接使用LangChain调用Claude,无需处理网络访问问题,同时兼容OpenAI接口格式,迁移成本极低。

主要优势:

  • Claude强大的推理与长上下文能力(200K tokens)
  • LangChain丰富的工具链和集成生态
  • 通过jiekou.ai实现国内稳定访问
  • OpenAI兼容接口,代码改动最小

一、LangChain简介与安装

LangChain是一个用于构建LLM应用的开源框架,支持Python和JavaScript。核心功能包括:

  • Chains:将多个组件串联成工作流
  • Agents:让LLM自主决策调用哪些工具
  • Memory:跨对话轮次保留上下文
  • RAG:检索增强生成,接入外部知识库

安装依赖

pip install langchain langchain-openai langchain-community
pip install faiss-cpu tiktoken
pip install duckduckgo-search

二、配置Claude作为LangChain LLM后端

基础配置

from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="claude-sonnet-4-5",
openai_api_key="your-jiekou-api-key",
openai_api_base="https://api.jiekou.ai/v1",
temperature=0.7,
max_tokens=4096,
)
response = llm.invoke("你好,请介绍一下自己")
print(response.content)

环境变量方式

import os
from langchain_openai import ChatOpenAI
os.environ["OPENAI_API_KEY"] = "your-jiekou-api-key"
os.environ["OPENAI_API_BASE"] = "https://api.jiekou.ai/v1"
llm = ChatOpenAI(
model="claude-sonnet-4-5",
temperature=0.7,
)

三、构建基础对话链(ConversationChain)

简单对话

from langchain_openai import ChatOpenAI
from langchain.schema import HumanMessage, SystemMessage
llm = ChatOpenAI(
model="claude-sonnet-4-5",
openai_api_key="your-jiekou-api-key",
openai_api_base="https://api.jiekou.ai/v1",
)
messages = [
SystemMessage(content="你是一个专业的Python开发助手,回答简洁准确。"),
HumanMessage(content="如何用Python读取JSON文件?"),
]
response = llm.invoke(messages)
print(response.content)

使用提示模板

from langchain.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="claude-sonnet-4-5",
openai_api_key="your-jiekou-api-key",
openai_api_base="https://api.jiekou.ai/v1",
)
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个{role}专家,用中文回答问题。"),
("human", "{question}"),
])
chain = prompt | llm
response = chain.invoke({
"role": "数据分析",
"question": "Pandas中如何处理缺失值?"
})
print(response.content)

四、使用Tools和Agent

LangChain Agent可以让Claude自主选择调用哪些工具来完成任务。

定义自定义工具

from langchain.tools import tool
from langchain_openai import ChatOpenAI
from langchain.agents import create_openai_tools_agent, AgentExecutor
from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder
@tool
def get_weather(city: str) -> str:
"""获取指定城市的天气信息"""
return f"{city}今天天气晴,温度25°C"
@tool
def calculate(expression: str) -> str:
"""计算数学表达式"""
try:
result = eval(expression)
return f"计算结果:{result}"
except Exception as e:
return f"计算错误:{str(e)}"
llm = ChatOpenAI(
model="claude-sonnet-4-5",
openai_api_key="your-jiekou-api-key",
openai_api_base="https://api.jiekou.ai/v1",
)
tools = [get_weather, calculate]
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个智能助手,可以调用工具来帮助用户。"),
("human", "{input}"),
MessagesPlaceholder(variable_name="agent_scratchpad"),
])
agent = create_openai_tools_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = agent_executor.invoke({"input": "北京今天天气怎么样?顺便算一下3的17次方"})
print(result["output"])

五、RAG检索增强生成

RAG(Retrieval-Augmented Generation)让Claude能够基于本地文档回答问题。

from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.chains import RetrievalQA
from langchain.schema import Document
embeddings = OpenAIEmbeddings(
openai_api_key="your-jiekou-api-key",
openai_api_base="https://api.jiekou.ai/v1",
)
documents = [
Document(page_content="jiekou.ai是国内Claude和GPT的API中转服务,支持OpenAI兼容格式。"),
Document(page_content="Claude的上下文窗口高达200K tokens,适合长文档处理。"),
Document(page_content="LangChain支持RAG、Agent、Memory等高级功能,是最流行的LLM框架。"),
]
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = splitter.split_documents(documents)
vectorstore = FAISS.from_documents(chunks, embeddings)
llm = ChatOpenAI(
model="claude-sonnet-4-5",
openai_api_key="your-jiekou-api-key",
openai_api_base="https://api.jiekou.ai/v1",
)
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=vectorstore.as_retriever(search_kwargs={"k": 3}),
)
answer = qa_chain.invoke({"query": "jiekou.ai是什么服务?"})
print(answer["result"])

六、记忆模块(Memory)

让Claude记住多轮对话的上下文。

from langchain_openai import ChatOpenAI
from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain
llm = ChatOpenAI(
model="claude-sonnet-4-5",
openai_api_key="your-jiekou-api-key",
openai_api_base="https://api.jiekou.ai/v1",
)
memory = ConversationBufferMemory()
conversation = ConversationChain(
llm=llm,
memory=memory,
verbose=True,
)
print(conversation.predict(input="我叫小明,是一名Python开发者"))
print(conversation.predict(input="我最近在学习LangChain"))
print(conversation.predict(input="你还记得我的名字吗?我在学什么?"))

滑动窗口记忆(控制token消耗)

from langchain.memory import ConversationBufferWindowMemory
# 只保留最近5轮对话
memory = ConversationBufferWindowMemory(k=5)
conversation = ConversationChain(
llm=llm,
memory=memory,
)

七、流式输出配置

from langchain_openai import ChatOpenAI
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
from langchain.schema import HumanMessage
llm = ChatOpenAI(
model="claude-sonnet-4-5",
openai_api_key="your-jiekou-api-key",
openai_api_base="https://api.jiekou.ai/v1",
streaming=True,
callbacks=[StreamingStdOutCallbackHandler()],
)
llm.invoke([HumanMessage(content="写一首关于编程的短诗")])

总结

通过LangChain集成Claude API,可以快速构建功能强大的AI应用:

核心要点:

  • 使用ChatOpenAI类配合openai_api_base参数接入jiekou.ai中转
  • LangChain的Chain、Agent、Memory、RAG四大模块覆盖绝大多数应用场景
  • Claude的200K上下文窗口在RAG和长文档处理场景中优势明显
  • 流式输出提升用户体验,推荐在Web应用中使用

推荐使用场景:

  • 企业内部知识库问答(RAG)
  • 自动化工作流(Agent + Tools)
  • 智能客服(Memory + ConversationChain)
  • 代码助手(Claude推理能力强)

获取API Key:访问 jiekou.ai 注册并获取API Key,即可立即开始使用,无需等待官方审核。

Share:
Contact Us