You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集成TeleBot与OpenAI API时遇两类错误的技术求助

问题解决步骤

错误原因及修复方案

1. NameError: name 'client' is not defined

代码里直接用了client但没初始化OpenAI客户端实例,补上初始化代码即可解决。

2. 聊天模型不支持completions端点

gpt-3.5-turbo-0613是聊天类模型,必须用chat.completions接口调用,同时参数格式要改成聊天消息数组,不能用单个prompt参数。

修改后的完整代码

import telebot
import openai

bot = telebot.TeleBot("0")
# 初始化OpenAI客户端
client = openai.OpenAI(api_key="0")

@bot.message_handler(content_types=['text'])
def lalala(message):
    print(message.chat.title, message.chat.username)
    if message.chat.id == -1002097745017:
        if "@0" in message.text:
            message.text = message.text.replace("@0 ", "")
            # 调用聊天模型的专属接口
            response = client.chat.completions.create(
                model="gpt-3.5-turbo-0613",
                messages=[{"role": "user", "content": message.text}],
                max_tokens=1000
            )
            # 按聊天模型的响应结构提取内容
            full_response = response.choices[0].message.content.strip()
            lines = full_response.splitlines()
            for line in lines:
                try:
                    bot.send_message(message.chat.id, line)
                except Exception as e:
                    print(e)
    else:
        bot.send_message(message.chat.id, "work only - tg.com/123123")

bot.polling(none_stop=True, interval=0)

关键修改点说明

  • 新增client = openai.OpenAI(api_key="0"),完成客户端初始化,解决client未定义问题。
  • 把client.completions.create替换为client.chat.completions.create,匹配聊天模型的接口要求。
  • 参数从prompt=message.text改为messages=[{"role": "user", "content": message.text}],符合聊天模型的消息格式规范。
  • 响应提取逻辑从response['choices'][0]['text']调整为response.choices[0].message.content.strip(),适配聊天模型的响应结构。

内容的提问来源于stack exchange,提问作者sdfsdf sdfsdf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:05:00