1. 项目概述:打造你的专属AI聊天机器人

最近在折腾一个挺有意思的小项目,用Go语言写了一个ChatGPT的Telegram机器人。简单来说,就是让你能在Telegram这个全球流行的即时通讯软件里,直接和ChatGPT对话,把它变成一个24小时在线的智能助手。无论是用来练习外语、解答技术问题、生成创意文案,还是单纯聊天解闷,都非常方便。这个项目叫 leafduo/chatgpt-telegram-bot ,部署起来不算复杂,但里面有不少细节和坑点,今天我就把自己从零搭建、配置到深度优化的全过程,以及踩过的那些坑,完整地分享出来。

这个机器人特别适合那些希望拥有一个私密、可控AI助手的开发者或技术爱好者。相比于使用官方的ChatGPT应用或者网页版,部署自己的机器人有几个明显优势:首先是隐私性,你的对话数据流经你自己的服务器(如果你选择自托管),可控性更强;其次是灵活性,你可以完全自定义机器人的行为,比如设定特定的回复风格、集成其他API,或者限制特定用户使用;最后是集成性,Telegram本身强大的群组、频道和机器人API,能让你的AI助手无缝融入已有的工作流或社交圈。

项目本身是用Go写的,这意味着它天生具有高性能、低内存占用和单文件部署的便利性。原作者提供了多种安装方式,从直接下载二进制文件、用Go工具安装,到使用Docker容器化部署,覆盖了不同技术背景用户的需求。接下来,我会带你一步步走通整个流程,并重点剖析那些官方文档可能一笔带过,但实际部署中至关重要的环节。

2. 核心原理与架构设计解析

2.1 技术栈选型与工作流拆解

这个机器人的核心逻辑其实是一个高效的“中转站”或“适配器”。它的技术栈非常清晰:主体用Go语言编写,利用Go出色的并发模型来处理Telegram可能同时到来的大量用户消息;通过Telegram Bot API与Telegram服务器通信,接收用户发送的消息;再通过OpenAI的官方API(或兼容API)将消息转发给ChatGPT模型处理;最后将模型返回的文本结果,通过Bot API发送回对应的Telegram聊天窗口。

整个工作流可以拆解为以下几个核心步骤:

  1. 初始化与长轮询 :机器人启动后,使用你提供的 TELEGRAM_APITOKEN 向Telegram服务器建立连接,并开始“长轮询”以获取新消息。这是一种高效的等待机制,避免了不必要的频繁请求。
  2. 消息接收与预处理 :当用户在Telegram中向你的机器人发送一条消息(文本)时,Telegram服务器会将其推送给你的机器人程序。程序会首先进行一些预处理,比如检查发送者的ID是否在允许列表( ALLOWED_TELEGRAM_ID )中,如果设置了白名单且用户不在其中,则忽略该消息。
  3. 会话管理 :为了支持连续对话(上下文理解),机器人需要维护“会话”状态。项目实现了一个基于超时机制的会话管理。每个用户(或每个私聊)对应一个会话。当用户发送消息时,机器人会检查是否存在未超时的现有会话。 CONVERSATION_IDLE_TIMEOUT_SECONDS 这个环境变量就是用来控制会话空闲超时时间的(默认900秒,即15分钟)。如果在超时时间内用户没有继续发言,旧的会话会被清除,下一条消息将开启一个全新的对话,之前的上下文会被遗忘。这对于控制API调用成本(OpenAI按Token收费,上下文越长越贵)和保持对话新鲜感很有用。
  4. 调用AI模型 :将预处理后的用户消息,连同该会话的历史记录(如果存在且未超时)一起,按照OpenAI Chat Completion API的格式进行组装。这里会用到几个关键参数: OPENAI_MODEL 指定使用 gpt-3.5-turbo 还是 gpt-4 MODEL_TEMPERATURE 控制回复的随机性(0.0最确定,2.0最随机); OPENAI_BASE_URL 则允许你指向自定义的API端点,这对于使用某些第三方代理服务或自建的兼容API服务器至关重要。
  5. 响应回传与流式输出 :收到OpenAI API的响应后,机器人将生成的文本回复发送回Telegram。一个值得注意的优化点是,对于较长的回复,Telegram Bot API有消息长度限制(约4096个字符)。成熟的机器人实现通常会包含自动分片逻辑,将长回复拆分成多条消息顺序发送,确保用户能收到完整内容。虽然项目README没细说,但好的实现应该处理了这一点。

2.2 环境变量配置深度解读

环境变量是这个机器人配置的核心,每一个都直接影响其行为。我们超越简单的变量说明,深入看看它们在实际运行中的影响和配置策略:

  • OPENAI_API_KEY :这是通行证。注意,OpenAI的API Key是分等级的,不同的付费计划有不同的速率限制和可用模型。个人使用 gpt-3.5-turbo 一般没问题,但如果你想用 gpt-4 ,需要确保你的账户有访问权限。安全提示: 绝对不要 将此密钥硬编码在代码中或提交到Git仓库。务必通过环境变量或安全的密钥管理服务传入。
  • TELEGRAM_APITOKEN :由BotFather颁发。这个Token本身只标识你的机器人,不包含认证信息。但一旦泄露,别人就可以控制你的机器人发送消息。因此,其保密等级同样很高。
  • ALLOWED_TELEGRAM_ID :这是一个重要的安全和成本控制开关。留空则允许所有人使用。如果你只是自用或小范围分享,强烈建议设置此项。获取Telegram ID的方法有很多,一个简单的方法是先不设置此变量,启动机器人后向它发送一条消息,机器人程序通常会在日志中打印出发送者的ID。你也可以使用像 @userinfobot 这样的Telegram机器人来查询自己的ID。
  • MODEL_TEMPERATURE :这个参数非常有趣,它决定了AI的“创造力”。设置为0时,模型会倾向于给出最确定、最一致的答案,适合事实问答、代码生成。设置为1(默认)或更高时,回答会更多样、更有创意,但也可能更天马行空,适合头脑风暴、写故事。你可以根据使用场景调整,比如我设置为0.7,在准确性和趣味性之间取得平衡。
  • CONVERSATION_IDLE_TIMEOUT_SECONDS :这个超时设置需要权衡。设置太短(如300秒),用户稍微思考一下,上下文就丢了,体验不连贯。设置太长(如3600秒),可能导致大量陈旧上下文占用内存,并且每次API调用都携带很长的历史,增加成本和延迟。900秒(15分钟)是一个比较折中的通用值。你可以根据你的使用频率调整。
  • OPENAI_MODEL :在 gpt-3.5-turbo gpt-4 之间选择。前者速度快、成本低,能力对于日常对话和一般任务已足够强大。后者理解能力、复杂任务处理和创造力显著更强,但速度慢、成本高。建议初期使用 gpt-3.5-turbo ,待有明确需求后再尝试 gpt-4 。另外,OpenAI会不断更新模型版本(如 gpt-3.5-turbo-0125 ),你可以尝试指定这些具体版本号,但需要确保项目代码支持。
  • OPENAI_BASE_URL :这是实现灵活性的关键。默认指向 https://api.openai.com 。如果你所在地区访问OpenAI官方API有困难,或者你想使用其他提供兼容OpenAI API接口的服务(例如一些国内外的代理服务或自建的反向代理),就可以通过修改这个变量来实现。 但这里有一个巨大的坑点 :许多第三方服务虽然接口兼容,但在响应格式、错误处理或支持的功能上可能存在细微差别,可能导致机器人工作不正常。切换前最好先测试该端点的兼容性。

3. 从零开始的详细部署实操

纸上得来终觉浅,我们直接上手,把机器人跑起来。我会以最通用的 二进制文件部署 和最便于维护的 Docker部署 两种方式为例,涵盖Linux(Ubuntu)环境。其他系统大同小异。

3.1 前期准备:获取关键凭证

无论哪种部署方式,你都需要先拿到两把“钥匙”。

1. 获取OpenAI API Key:

  1. 访问 OpenAI平台 ,登录你的账户。
  2. 点击右上角个人头像,选择“View API keys”。
  3. 点击“Create new secret key”按钮。为它起个名字(例如“MyTelegramBot”),然后创建。
  4. 立即复制并妥善保存这个Key 。它只显示一次,关闭窗口后就无法再查看完整Key了。如果丢失,需要重新生成。

2. 创建Telegram机器人并获取Token:

  1. 在Telegram中搜索并打开 @BotFather (官方机器人创建工具)。
  2. 发送命令 /newbot 开始创建。
  3. 根据提示,依次设置你的机器人的显示名称(如“AI助手小瓜”)和用户名(必须以 bot 结尾,如 xiaogua_aid_bot )。用户名必须全局唯一。
  4. 创建成功后, BotFather 会发给你一个HTTP API访问令牌,格式类似 1234567890:ABCdefGHIjklMnOpQRsTUVwxyZ 这就是你的 TELEGRAM_APITOKEN ,同样请保存好
  5. 你还可以通过 /setuserpic 设置头像, /setdescription 设置简介,让你的机器人更专业。

3.2 方案一:使用二进制文件部署(适合快速测试)

这种方式最简单直接,适合几乎所有Linux发行版和macOS。

步骤1:下载最新版二进制文件 访问项目的 GitHub Releases页面 。找到最新版本(通常在最上面),根据你的操作系统和处理器架构选择对应的文件。例如,对于64位Linux系统,通常选择 chatgpt-telegram-bot_linux_amd64.tar.gz 或类似名称的压缩包。

你可以使用 wget curl 在终端中直接下载。假设最新版本是v1.0.0:

wget https://github.com/leafduo/chatgpt-telegram-bot/releases/download/v1.0.0/chatgpt-telegram-bot_linux_amd64.tar.gz

步骤2:解压并放置到系统路径

tar -xzf chatgpt-telegram-bot_linux_amd64.tar.gz

解压后你会得到一个名为 chatgpt-telegram-bot 的可执行文件。为了能在任何目录下运行它,我们把它放到系统级的可执行文件路径下,比如 /usr/local/bin

sudo mv chatgpt-telegram-bot /usr/local/bin/
# 确保它有执行权限
sudo chmod +x /usr/local/bin/chatgpt-telegram-bot

现在,你可以在终端直接输入 chatgpt-telegram-bot 来执行了。

步骤3:配置环境变量并运行 我们不建议直接在命令行中用 export 设置,因为这样密钥会留在历史记录中。推荐创建一个简单的启动脚本或使用进程管理器。这里先演示最简单的一次性运行方式(关闭终端后进程结束):

export OPENAI_API_KEY="你的OpenAI_API_Key"
export TELEGRAM_APITOKEN="你的Telegram_Bot_Token"
# 可选:设置只允许你自己使用,用逗号分隔多个ID
# export ALLOWED_TELEGRAM_ID="123456789,987654321"
chatgpt-telegram-bot

如果一切正常,你应该能看到类似 Bot started successfully... 的日志输出。现在,打开Telegram,找到你的机器人(通过它的用户名),发送一条“/start”或“你好”,应该就能收到ChatGPT的回复了!

注意 :这种前台运行方式,一旦关闭终端或SSH连接,机器人就停止了。对于长期运行,我们需要更好的方法。

步骤4:配置系统服务长期运行(以Systemd为例) 为了让它能在后台稳定运行,并在服务器重启后自动启动,我们创建一个Systemd服务。

  1. 创建服务配置文件:
    sudo nano /etc/systemd/system/chatgpt-tgbot.service
    
  2. 将以下内容粘贴进去, 请务必替换 [你的API Key] [你的Bot Token]
    [Unit]
    Description=ChatGPT Telegram Bot
    After=network.target
    
    [Service]
    Type=simple
    User=nobody
    Group=nogroup
    # 设置环境变量在这里,更安全
    Environment="OPENAI_API_KEY=[你的OpenAI_API_Key]"
    Environment="TELEGRAM_APITOKEN=[你的Telegram_Bot_Token]"
    Environment="ALLOWED_TELEGRAM_ID=123456789" # 替换为你的Telegram ID
    Environment="MODEL_TEMPERATURE=0.7"
    Environment="CONVERSATION_IDLE_TIMEOUT_SECONDS=900"
    Environment="OPENAI_MODEL=gpt-3.5-turbo"
    # 工作目录和可执行文件路径
    WorkingDirectory=/tmp
    ExecStart=/usr/local/bin/chatgpt-telegram-bot
    Restart=always
    RestartSec=10
    
    [Install]
    WantedBy=multi-user.target
    
    • User=nobody Group=nogroup 让服务以低权限运行,更安全。
    • Restart=always 确保进程崩溃后自动重启。
  3. 保存并退出编辑器(在nano中按 Ctrl+X ,然后按 Y ,再按 Enter )。
  4. 重新加载Systemd配置,启用并启动服务:
    sudo systemctl daemon-reload
    sudo systemctl enable chatgpt-tgbot.service
    sudo systemctl start chatgpt-tgbot.service
    
  5. 检查服务状态和日志,确认运行正常:
    sudo systemctl status chatgpt-tgbot.service
    # 查看实时日志
    sudo journalctl -u chatgpt-tgbot.service -f
    

3.3 方案二:使用Docker Compose部署(推荐,便于管理)

Docker方式将应用及其依赖打包在一起,隔离性好,升级和迁移都非常方便。项目提供了 docker-compose.yml 示例,我们基于它来配置。

步骤1:安装Docker和Docker Compose 如果你的系统还没有安装,请先安装。以Ubuntu为例:

# 安装Docker
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker

# 安装Docker Compose插件(新版本Docker已集成)
sudo apt install docker-compose-plugin
# 验证安装
docker compose version

步骤2:创建项目目录和配置文件

mkdir ~/chatgpt-telegram-bot && cd ~/chatgpt-telegram-bot

创建 docker-compose.yml 文件:

version: '3.8'

services:
  chatgpt-telegram-bot:
    image: ghcr.io/leafduo/chatgpt-telegram-bot:latest
    container_name: chatgpt-tg-bot
    restart: unless-stopped
    environment:
      - OPENAI_API_KEY=${OPENAI_API_KEY}          # 从.env文件读取
      - TELEGRAM_APITOKEN=${TELEGRAM_APITOKEN}    # 从.env文件读取
      - ALLOWED_TELEGRAM_ID=${ALLOWED_TELEGRAM_ID:-} # 可选,默认空
      - MODEL_TEMPERATURE=${MODEL_TEMPERATURE:-1.0}
      - CONVERSATION_IDLE_TIMEOUT_SECONDS=${CONVERSATION_IDLE_TIMEOUT_SECONDS:-900}
      - OPENAI_MODEL=${OPENAI_MODEL:-gpt-3.5-turbo}
      # - OPENAI_BASE_URL=${OPENAI_BASE_URL:-https://api.openai.com} # 如需自定义API端点,取消注释
    # 如果需要持久化会话数据(如果程序支持),可以挂载卷
    # volumes:
    #   - ./data:/app/data

创建 .env 文件来存储敏感的环境变量( 务必确保此文件不被提交到公开仓库 ):

# .env 文件
OPENAI_API_KEY=你的OpenAI_API_Key
TELEGRAM_APITOKEN=你的Telegram_Bot_Token
# 可选配置
ALLOWED_TELEGRAM_ID=你的Telegram_ID
MODEL_TEMPERATURE=0.7
CONVERSATION_IDLE_TIMEOUT_SECONDS=1200
OPENAI_MODEL=gpt-3.5-turbo
# OPENAI_BASE_URL=https://your-custom-api-endpoint.com

步骤3:启动服务 docker-compose.yml .env 所在的目录下运行:

docker compose up -d

-d 参数表示在后台运行。使用以下命令查看日志:

docker compose logs -f

看到成功的启动日志后,就可以去Telegram测试你的机器人了。

步骤4:管理服务

  • 停止服务 docker compose down
  • 重启服务 docker compose restart
  • 更新镜像 docker compose pull && docker compose up -d
  • 查看运行状态 docker compose ps

Docker部署的优势在于,你的服务器环境可以非常干净,所有依赖都在容器内。未来升级时,只需要修改 .env 配置或拉取新镜像重启即可,非常省心。

4. 高级配置、优化与故障排查

机器人跑起来只是第一步,让它跑得稳、跑得好用,还需要一些额外的功夫。

4.1 安全性强化措施

  1. 严格限制访问(白名单) :除非你打算公开提供服务,否则 务必 设置 ALLOWED_TELEGRAM_ID 。否则,任何知道机器人用户名的人都可以使用它,不仅可能导致API密钥被滥用产生高额费用,还可能接收到不受控的对话内容。
  2. 使用环境变量或密钥管理服务 :永远不要将API密钥和Token写在代码或Compose文件的明文里。使用 .env 文件(并加入 .gitignore )或像Docker Secrets、HashiCorp Vault这样的专业密钥管理工具。
  3. 为机器人设置命令 :通过 @BotFather 为你的机器人设置一些命令菜单(如 /help , /start , /reset ),可以提供更好的用户体验,并明确功能边界。项目可能内置了部分命令支持,请查阅其文档。
  4. 网络层面隔离 :如果你的服务器还运行其他服务,可以考虑使用Docker的独立网络或防火墙规则,限制机器人容器对外的网络访问,只允许其连接到Telegram API和OpenAI API(或你指定的自定义端点)的域名和端口。

4.2 性能与成本优化

  1. 会话超时策略调优 CONVERSATION_IDLE_TIMEOUT_SECONDS 直接影响上下文长度和API调用成本。观察你的使用习惯:如果你经常进行长时间的、间歇性的深度对话,可以适当延长(如1800秒)。如果只是偶尔问几个独立问题,可以缩短(如300秒),甚至可以在项目中寻找或贡献“每次对话都是独立上下文”的配置选项。
  2. 模型选择策略 gpt-3.5-turbo 是性价比之王。对于绝大多数日常问答、翻译、总结、代码片段生成等任务,它的表现已经足够出色。仅在处理极其复杂的逻辑推理、创意写作或需要深度分析的任务时,再考虑切换到 gpt-4 。你甚至可以通过自定义指令,让用户通过特定命令(如 /gpt4 )来临时切换模型,实现按需使用。
  3. 利用 OPENAI_BASE_URL :如果你发现直连OpenAI API延迟很高或不稳定,可以考虑使用可靠的第三方代理服务。这些服务通常在国内有优化节点,能显著提升响应速度。 但务必选择信誉良好的服务商 ,并注意你的对话数据会经过他们的服务器。切换后,务必全面测试机器人的各项功能是否正常。
  4. 监控API使用量 :定期登录OpenAI平台,在“Usage”页面查看API调用情况和费用消耗。设置预算告警,避免意外超支。

4.3 常见问题与故障排查实录

在实际部署和运行中,你可能会遇到以下问题。这里是我的排查笔记:

问题1:机器人启动失败,日志显示 Failed to get bot info Unauthorized

  • 可能原因 TELEGRAM_APITOKEN 填写错误。
  • 排查步骤
    1. 仔细核对Token,确保没有多余的空格或换行。
    2. 确认Token是从 @BotFather 那里正确复制过来的。
    3. 尝试在浏览器中访问 https://api.telegram.org/bot<你的Token>/getMe (将 <你的Token> 替换为你的真实Token)。如果返回 {"ok":false,"error_code":401,"description":"Unauthorized"} ,说明Token无效;如果返回包含 "ok":true 的JSON,则Token有效,问题可能出在其他地方。

问题2:机器人能启动,但收不到消息或无法回复。

  • 可能原因A ALLOWED_TELEGRAM_ID 设置错误,你的ID不在列表中。
  • 排查A :注释掉或清空 ALLOWED_TELEGRAM_ID 环境变量,重启机器人,看是否能收到消息。如果能,说明就是ID限制问题。确保你填写的ID是纯数字的用户ID,而不是用户名(@xxx)。
  • 可能原因B :服务器网络问题,无法连接到Telegram服务器。
  • 排查B :在服务器上运行 curl -s https://api.telegram.org ,看是否能正常连接。检查服务器防火墙是否放行了443端口的外出连接。
  • 可能原因C :机器人被用户屏蔽或未开启私聊。
  • 排查C :在Telegram中搜索你的机器人,点击“Start”或发送 /start 命令初始化对话。

问题3:机器人能收到消息,但回复 Error communicating with OpenAI 或超时。

  • 可能原因A OPENAI_API_KEY 无效或余额不足。
  • 排查A :登录OpenAI平台,检查API Key是否有效,以及账户是否有余额或已超出速率限制。
  • 可能原因B :服务器无法访问OpenAI API(网络问题)。
  • 排查B :在服务器上运行 curl -s https://api.openai.com/v1/models -H "Authorization: Bearer <你的API Key>" 。如果返回错误或超时,说明网络不通。如果你使用了 OPENAI_BASE_URL ,请测试你自定义的端点。
  • 可能原因C :OpenAI服务临时故障。
  • 排查C :访问 OpenAI Status 查看服务状态。

问题4:回复内容被截断,只收到一部分。

  • 可能原因 :Telegram对单条消息有长度限制(约4096个字符),而AI的回复超过了这个限制。
  • 解决方案 :这是一个客户端(机器人程序)应该处理的问题。检查你使用的 leafduo/chatgpt-telegram-bot 版本是否实现了自动分片。如果没有,你可能需要寻找其他分支或自行修改代码来实现。一个健壮的机器人应该将长回复按段落或句子分割成多条消息发送。

问题5:Docker容器启动后立即退出。

  • 可能原因 :环境变量配置错误或缺失,导致主程序启动失败。
  • 排查步骤
    1. 使用 docker compose logs chatgpt-telegram-bot 查看退出前的错误日志。
    2. 检查 .env 文件中的变量名是否与 docker-compose.yml 中引用的完全一致,特别是拼写和大小写。
    3. 确保 .env 文件中的值都被正确引号包裹,且没有奇怪的字符。
    4. 尝试去掉 -d 参数,直接在前台运行以查看实时输出: docker compose up

问题6:如何升级到最新版本?

  • 对于二进制部署 :去GitHub Releases页面下载新的二进制文件,替换旧的,然后重启Systemd服务: sudo systemctl restart chatgpt-tgbot.service
  • 对于Docker部署 :执行以下命令:
    docker compose pull        # 拉取最新镜像
    docker compose down        # 停止并删除旧容器
    docker compose up -d      # 用新镜像创建并启动新容器
    # 或者更简单的一行命令:docker compose up -d --pull always
    

5. 功能扩展与个性化定制思路

开源项目的魅力在于可以按需定制。虽然 leafduo/chatgpt-telegram-bot 提供了核心功能,但你还可以让它变得更强大、更贴合你的需求。

1. 添加自定义系统指令(System Prompt): 这是塑造机器人“性格”和“专业领域”最有效的方式。你可以在项目代码中,找到构造发送给OpenAI API的请求部分,在消息列表( messages 数组)的开头,加入一个 role system 的消息。例如,你可以设置:

你是一个乐于助人且幽默的编程助手,擅长用Python和Go语言解决问题。回答要简洁明了,必要时提供代码示例。

这样,机器人在每次对话(或每个会话)中都会带着这个背景指令,回答会更符合你的期望。这需要你具备修改Go代码并重新编译的能力。

2. 实现多模态支持(如果未来OpenAI API支持): 目前项目主要处理文本。如果未来OpenAI的Chat API支持图像或文件输入,你可以修改代码,让机器人也能处理Telegram中发送的图片(例如,描述图片内容)或文档(例如,总结PDF内容)。这需要处理Telegram Bot API的文件接收和OpenAI API的多模态调用。

3. 集成其他工具或API: 让机器人不止能聊天,还能“做事”。例如:

  • 搜索增强 :当用户询问实时信息时(如“今天天气如何?”),可以先调用一个天气API,再将结果和问题一起交给ChatGPT总结回复。
  • 私有知识库 :结合向量数据库,让机器人能基于你提供的私有文档(公司手册、个人笔记)来回答问题。这通常需要一个独立的RAG(检索增强生成)服务,机器人作为前端交互界面。
  • 自动化任务 :解析用户指令,触发服务器上的脚本。例如,用户发送“重启测试服务器”,机器人验证权限后,通过SSH执行重启命令,并将结果返回。

4. 改进会话管理: 当前的超时机制比较简单。你可以考虑实现更复杂的会话管理,比如:

  • 持久化存储 :将会话历史保存到数据库(如SQLite、Redis)中,而不是仅存在内存里。这样即使机器人重启,也能恢复之前的对话。
  • 手动会话控制 :为用户提供 /new 命令来主动开启新会话, /history 命令来查看当前会话的摘要。

5. 添加管理命令和统计功能: 为管理员(你自己)添加一些特权命令,例如:

  • /stats :查看机器人总对话次数、Token消耗估算。
  • /broadcast :向所有授权用户发送通知。
  • /switch_model :动态切换AI模型。

这些扩展都需要你深入理解项目的Go代码结构,并具备相应的开发能力。对于大多数用户来说,使用现有的稳定版本,并做好安全和配置优化,已经能获得非常好的体验了。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐