API中转服务安全吗?如何选择可信赖的中转平台
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-communitypip install faiss-cpu tiktokenpip install duckduckgo-search
二、配置Claude作为LangChain LLM后端
基础配置
from langchain_openai import ChatOpenAIllm = 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 osfrom langchain_openai import ChatOpenAIos.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 ChatOpenAIfrom langchain.schema import HumanMessage, SystemMessagellm = 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 ChatPromptTemplatefrom langchain_openai import ChatOpenAIllm = 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 | llmresponse = chain.invoke({ "role": "数据分析", "question": "Pandas中如何处理缺失值?"})print(response.content)
四、使用Tools和Agent
LangChain Agent可以让Claude自主选择调用哪些工具来完成任务。
定义自定义工具
from langchain.tools import toolfrom langchain_openai import ChatOpenAIfrom langchain.agents import create_openai_tools_agent, AgentExecutorfrom langchain.prompts import ChatPromptTemplate, MessagesPlaceholder@tooldef get_weather(city: str) -> str: """获取指定城市的天气信息""" return f"{city}今天天气晴,温度25°C"@tooldef 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, OpenAIEmbeddingsfrom langchain_community.vectorstores import FAISSfrom langchain.text_splitter import RecursiveCharacterTextSplitterfrom langchain.chains import RetrievalQAfrom langchain.schema import Documentembeddings = 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 ChatOpenAIfrom langchain.memory import ConversationBufferMemoryfrom langchain.chains import ConversationChainllm = 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 ChatOpenAIfrom langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandlerfrom langchain.schema import HumanMessagellm = 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,即可立即开始使用,无需等待官方审核。