随着大模型技术的日益成熟,构建一个属于自己的AI聊天机器人变得越来越简单。本文将以 Muhammad Mubashir Saeedi 的教程为基础,深入探讨如何使用 ChainlitGoogle Gemini API,一步步构建一个简易但功能强大的 AI聊天机器人。我们将从环境搭建、代码编写到部署上线,全面解析各个环节的关键步骤,帮助你快速掌握大模型在实际应用中的技巧。

1. 环境搭建:uv 初始化与依赖安装

首先,我们需要搭建一个干净且隔离的开发环境。 Muhammad Mubashir Saeedi 推荐使用 uv,一个更现代化的 Python 包管理器,来初始化项目。相较于传统的 venvpipuv 在速度和资源利用率上更有优势。

具体操作如下:

  1. 打开命令提示符(Command Prompt)或终端,并进入你的项目目录(例如,桌面)。
  2. 输入 uv init helloMubashir (这里的 helloMubashir 是项目名称,可以自定义) 创建一个名为 helloMubashir 的项目。
  3. 使用 cd helloMubashir 进入项目目录。
  4. 运行 code . 打开 VS Code 编辑器。

接下来,我们需要安装项目所需的依赖包。作者推荐使用 uv add openai-agents dotenv chainlit 命令安装 openai-agentsdotenvchainlit 三个关键库。

  • chainlit:是构建 Python AI聊天机器人的开源框架,它简化了用户界面和交互逻辑的开发,让开发者专注于核心的 大模型 应用。
  • openai-agents:虽然名字包含 OpenAI,但在这里用于与 Google Gemini API 交互,它提供了一套标准化的接口,方便我们调用各种 大模型
  • dotenv:用于管理环境变量,安全地存储你的 Google Gemini API 密钥。

安装完成后,运行 .venv\scripts\activate (Windows) 或 source .venv/bin/activate (Linux/macOS) 激活虚拟环境。

2. 配置 API 密钥:获取与存储

要使用 Google Gemini API,我们需要先获取 API 密钥。前往 Google AI Studio (aistudio.google.com),登录你的 Google 账号,并创建一个新的 API 密钥。

  • 确保你已经同意了 Google AI Studio 的使用条款。
  • 如果需要,可以创建一个新的 Google Cloud 项目来管理你的 API 密钥。

获取 API 密钥后,创建一个名为 .env 的文件,并将密钥存储在其中,格式如下:

GEMINI_API_KEY=YOUR_API_KEY

务必.env 文件添加到你的 .gitignore 文件中,防止敏感信息泄露到公共代码仓库。

3. 代码编写:Chainlit 与 Gemini API 集成

现在,我们可以开始编写 AI聊天机器人 的核心代码了。创建一个名为 main.py 的文件,并将以下代码复制进去(强烈建议手敲,而不是复制粘贴,这样能更好地理解代码逻辑):

# --------------------------------------------------------
# 🧠 Simple AI Chatbot using Chainlit + Gemini API
# 👨‍💻 Developed & Explained by Muhammad Mubashir
# 📅 Date: June 2025
# --------------------------------------------------------

import os
import chainlit as cl
from dotenv import load_dotenv
from agents import Agent, Runner, AsyncOpenAI, RunConfig, OpenAIChatCompletionsModel

load_dotenv()

MODEL_NAME = "gemini-2.0-flash"  # Use the appropriate Gemini model name
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")

external_client = AsyncOpenAI(
    api_key=GEMINI_API_KEY,
    base_url="https://generativelanguage.googleapis.com/v1beta/openai/"  # Gemini API endpoint
)

model = OpenAIChatCompletionsModel(
    model=MODEL_NAME,
    openai_client=external_client
)

config = RunConfig(
    model=model,
    model_provider=external_client,
    tracing_disabled=True
)

my_assitant = Agent(
    name="AI Assitant",
    instructions="You are helpful a assitant",
    # model = model # 可以直接绑定模型
)

@cl.on_chat_start
async def start():
    await cl.Message(
        content="👋 Welcome to Simple Chatbot! Ask anything.\n\n👨‍💻 *Created by Muhammad Mubashir*"
    ).send()

@cl.on_message
async def handle_message(message: cl.Message):
    try:
        user_input = message.content
        result = await Runner.run(my_assitant, input=user_input, run_config=config)
        await cl.Message(content=result.final_output).send()
    except Exception as e:
        await cl.Message(content=f"❌ Error: {e}").send()

# result = Runner.run_sync(my_assitant,"how are you", run_config = config)
# print(result.final_output)

这段代码主要做了以下几件事:

  • 导入必要的库os, chainlit, dotenv, 以及 agents 模块中的相关类。
  • 加载环境变量:使用 load_dotenv() 加载 .env 文件中的 API 密钥。
  • 配置 Gemini API 客户端:创建 AsyncOpenAI 客户端,并指定 API 密钥和 Gemini API 的基础 URL。
  • 创建 OpenAI 模型实例: 通过 OpenAIChatCompletionsModel将外部的 AsyncOpenAI 和模型名称绑定,方便后续调用。
  • 配置运行参数:创建 RunConfig 对象,配置模型、模型提供者和是否禁用追踪。
  • 定义 AI 助手:创建 Agent 对象,设置助手的名称和指令(例如,”你是一个乐于助人的助手”)。
  • 定义 Chainlit 事件处理函数
    • @cl.on_chat_start:在聊天开始时发送欢迎消息。
    • @cl.on_message:处理用户输入的消息,调用 Runner.run 方法运行 AI 助手,并将结果发送给用户。

这里有几点需要注意:

  • MODEL_NAME 变量需要根据你使用的 Gemini 模型进行调整,例如 "gemini-2.0-pro""gemini-2.0-flash"
  • base_url 变量需要指向正确的 Gemini API Endpoint. 当前使用的是 https://generativelanguage.googleapis.com/v1beta/openai/,请参考官方文档确认最新地址。
  • Agentinstructions 属性定义了 AI聊天机器人 的行为方式,你可以根据自己的需求进行修改。 例如,可以添加特定的知识领域或回答风格。

4. 运行与测试:chainlit run 命令

一切准备就绪,我们可以运行 AI聊天机器人 了。在命令提示符或终端中,确保你仍然在项目目录中,然后运行以下命令:

chainlit run main.py

这将启动 Chainlit 应用,并在你的浏览器中打开一个页面。你应该能看到 “👋 Welcome to Simple Chatbot! Ask anything.\n\n👨‍💻 *Created by Muhammad Mubashir*” 的欢迎消息。

现在,你可以开始与你的 AI聊天机器人 互动了。输入一些问题,看看它的回答。例如,你可以问 “你好”、”今天天气怎么样?” 或 “什么是人工智能?”。

5. 优化与改进:Agent 与指令工程

AI聊天机器人 的性能很大程度上取决于 Agent 的配置,特别是 instructions 属性。这就是所谓的“指令工程”,即通过精心设计的指令,引导 大模型 产生更符合期望的输出。

例如,我们可以修改 instructions 属性,让 AI聊天机器人 扮演一个特定领域的专家:

my_assitant = Agent(
    name="AI 金融助手",
    instructions="你是一位专业的金融助手,擅长分析股票、基金和宏观经济数据。请用简洁明了的语言回答用户的问题,并提供有价值的建议。",
    # model = model
)

通过这样的修改,AI聊天机器人 在回答金融相关问题时,会更加专业和准确。

除了 instructions 属性,还可以通过调整 RunConfig 对象中的参数来优化 AI聊天机器人 的性能。例如,可以调整 temperature 参数,控制 大模型 的输出随机性:

  • temperature = 0:输出更加确定和保守。
  • temperature = 1:输出更加随机和创造性。

6. 部署与分享:Vercel 或其他平台

完成开发和测试后,你可以将你的 AI聊天机器人 部署到云平台上,与其他人分享。常见的部署平台包括 Vercel、Heroku、AWS 和 Google Cloud。

以 Vercel 为例,你需要:

  1. 将你的代码推送到 GitHub 或 GitLab 仓库。
  2. 在 Vercel 上创建一个新的项目,并连接到你的代码仓库。
  3. 配置 Vercel 的环境变量,设置 GEMINI_API_KEY 的值。
  4. 部署你的项目。

Vercel 会自动构建和部署你的 AI聊天机器人,并提供一个公开的 URL。你可以将这个 URL 分享给你的朋友或同事,让他们体验你的作品。

7. 进阶应用:扩展与定制

掌握了基本的 AI聊天机器人 构建方法后,你可以尝试扩展和定制它的功能,例如:

  • 集成外部数据源:连接到数据库、API 或其他数据源,让 AI聊天机器人 能够回答更复杂的问题。 例如,可以连接到天气 API,让 AI聊天机器人 能够提供实时天气信息。
  • 添加记忆功能:使用 Redis 或其他缓存技术,让 AI聊天机器人 记住之前的对话内容,并提供更个性化的服务。 这需要使用 Chainlit 提供的会话管理功能。
  • 实现多轮对话:通过维护对话状态,让 AI聊天机器人 能够进行更复杂的对话流程。 例如,可以实现一个订餐机器人,引导用户完成点餐过程。
  • 使用 LangChain 等框架:LangChain 提供了更高级的 大模型 应用开发工具,例如链式调用、知识库集成和代理工具。 可以结合 LangChain 和 Chainlit,构建更强大的 AI聊天机器人

8. 大模型技术的未来与挑战

大模型 技术正在快速发展,其在 AI聊天机器人 领域的应用也越来越广泛。未来,我们可以期待:

  • 更强大的模型:更大的模型、更复杂的架构和更多的数据,将带来更智能、更自然的对话体验。
  • 更个性化的服务AI聊天机器人 将能够更好地理解用户的需求,提供更个性化的服务。
  • 更广泛的应用AI聊天机器人 将被应用到更多的领域,例如教育、医疗、金融和娱乐。

然而,大模型 技术也面临着一些挑战:

  • 算力需求:训练和部署 大模型 需要大量的算力,这限制了其应用范围。
  • 数据隐私大模型 需要大量的数据进行训练,这引发了数据隐私的担忧。
  • 伦理问题大模型 可能会产生偏见和歧视,这需要我们认真对待。

总之,大模型 技术为 AI聊天机器人 的发展带来了巨大的机遇,同时也提出了新的挑战。我们需要在享受技术带来的便利的同时,积极应对这些挑战,确保 大模型 技术能够更好地服务于人类。

总结

本文以 Muhammad Mubashir Saeedi 的教程为基础,深入探讨了如何使用 ChainlitGoogle Gemini API 构建一个简易 AI聊天机器人。我们从环境搭建、API 密钥配置、代码编写、运行测试到优化部署,全面解析了各个环节的关键步骤。希望本文能够帮助你快速掌握 大模型 在实际应用中的技巧,并开启你的 AI聊天机器人 开发之旅。 通过本文的学习,相信你已经对大模型AI聊天机器人有了更深入的了解,也能够在实际项目中灵活运用ChainlitGoogle Gemini API等工具,创造出更多有价值的应用。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注