AI百事通

从零搭建AI聊天机器人:基于LangChain与GPT-4o教程

📅 2026-07-08📰 ai_generated👁 1 次阅读
从零搭建AI聊天机器人:基于LangChain与GPT-4o教程
LangChainGPT-4o聊天机器人Python教程AI开发

目标

完成本教程后,你将拥有一个基于LangChain和GPT-4o的聊天机器人,支持上下文记忆、自定义提示词和流式输出。

环境准备

1. 安装依赖

pip install langchain langchain-openai python-dotenv

2. 设置API密钥

创建.env文件:

OPENAI_API_KEY=your-api-key-here

第一步:基础聊天机器人

1.1 初始化模型

from langchain_openai import ChatOpenAI
from dotenv import load_dotenv

load_dotenv()

llm = ChatOpenAI(model="gpt-4o", temperature=0.7)

1.2 创建简单对话

from langchain.schema import HumanMessage, AIMessage

messages = [HumanMessage(content="你好!")]
response = llm.invoke(messages)
print(response.content)

第二步:添加记忆功能

使用ConversationBufferMemory存储历史消息。

from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain

memory = ConversationBufferMemory()
conversation = ConversationChain(llm=llm, memory=memory)

print(conversation.predict(input="你好!"))
print(conversation.predict(input="我叫小明。"))
print(conversation.predict(input="我的名字是什么?"))

第三步:自定义提示词

通过PromptTemplate定制机器人的角色和回复风格。

from langchain.prompts import PromptTemplate

template = """你是一个乐于助人的AI助手。请用中文回答。

历史对话:
{history}

用户:{input}
AI:"""

prompt = PromptTemplate(input_variables=["history", "input"], template=template)
conversation = ConversationChain(llm=llm, prompt=prompt, memory=memory)

第四步:流式输出

实现逐字输出,提升用户体验。

from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler

llm = ChatOpenAI(model="gpt-4o", streaming=True, callbacks=[StreamingStdOutCallbackHandler()])

第五步:部署为Web服务(可选)

使用FastAPI创建API接口。

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Message(BaseModel):
    content: str

@app.post("/chat")
async def chat(message: Message):
    response = llm.invoke([HumanMessage(content=message.content)])
    return {"reply": response.content}

总结

通过以上步骤,你已成功搭建一个具备记忆和自定义能力的AI聊天机器人。你可以进一步集成外部知识库、工具调用等高级功能。