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

Chainlit开发LLM聊天程序遇端口占用错误求助

问题解决:Chainlit运行报错及代码修正

一、端口占用错误解决

报错Errno 10048是因为8000端口被其他进程占用,Chainlit默认使用该端口启动服务,解决方式二选一:

  • 方式1:关闭占用端口的进程
    • Windows:打开命令提示符,执行以下命令:
      netstat -ano | findstr :8000
      taskkill /PID <查到的PID号> /F
      
    • macOS/Linux:打开终端,执行以下命令:
      lsof -i :8000
      kill -9 <查到的PID号>
      
  • 方式2:指定其他端口启动Chainlit
    运行脚本时通过命令行参数指定端口,例如:
    chainlit run your_script.py --port 8001
    

二、代码逻辑错误修正

你的代码存在3处关键错误,会导致API调用失败,修正后的完整代码如下:

import chainlit as cl
import os
import openai

# 配置OpenAI API密钥
os.environ['OPENAI_API_KEY'] = 'xxx'
openai.api_key = os.getenv('OPENAI_API_KEY')

@cl.on_message
async def main(message: cl.Message):
    response = openai.ChatCompletion.create(
        model='gpt-4',
        messages=[  # 修正参数名:message → messages
            {"role": "system", "content": "You are a helpful assistant"},  # 修正角色:assistant → system
            {"role": "user", "content": message.content}  # 修正获取用户输入:message → message.content
        ],
        temperature=1,
    )
    await cl.Message(content=response['choices'][0]['message']['content']).send()

修正说明:

  1. API参数拼写错误:OpenAI ChatCompletion接口要求对话历史参数为messages,原代码写成message会触发API调用错误。
  2. 系统提示角色错误:定义助手行为的提示应使用role="system",而非assistant,否则GPT无法正确识别系统指令。
  3. 用户输入获取错误:@cl.on_message装饰的函数接收的参数是cl.Message对象,需通过message.content获取用户输入的文本内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 04:22:45