Qwen3-4B-Thinking-GGUF实战手册:从镜像拉取到Chainlit交互全流程

你是不是也遇到过这样的问题:想体验最新的开源大模型,但部署过程复杂,各种依赖问题让人头疼?好不容易部署好了,又不知道怎么用起来,只能对着命令行发呆?

今天,我来带你完整走一遍Qwen3-4B-Thinking-GGUF模型的实战流程。这不是那种只讲理论的教程,而是真正从零开始,手把手教你把这个模型跑起来,并且用一个漂亮的Web界面来交互。整个过程就像搭积木一样简单,你只需要跟着步骤做,30分钟内就能看到效果。

1. 认识我们的主角:Qwen3-4B-Thinking-GGUF

在开始动手之前,我们先简单了解一下今天要用的模型。这能帮你理解为什么选择它,以及它能做什么。

1.1 模型背景与特点

Qwen3-4B-Thinking-GGUF是一个基于通义千问3-4B模型进行特殊优化的版本。让我用大白话解释一下这几个关键点:

  • Qwen3-4B:这是阿里云开源的70亿参数模型,在中文理解和生成方面表现很不错
  • Thinking:这个版本加入了"思维链"能力,简单说就是模型在回答问题时,会像人一样先思考步骤,再给出答案
  • GGUF:这是一种新的模型文件格式,相比之前的格式,它加载更快、内存占用更少,特别适合在个人电脑或服务器上运行

最有趣的是,这个模型在GPT-5-Codex的1000个示例上进行了微调。这意味着它在代码生成、逻辑推理方面会有更好的表现。

1.2 为什么选择这个组合?

你可能会问:为什么用vLLM部署,又用Chainlit做前端?我来解释一下:

vLLM是目前最流行的大模型推理引擎之一,它的最大优点是推理速度快、内存效率高。传统方式加载一个4B模型可能需要几分钟,vLLM能在几十秒内完成。

Chainlit则是一个专门为AI应用设计的Web框架,它让创建聊天界面变得极其简单。你不用写复杂的HTML、CSS、JavaScript,几行Python代码就能得到一个漂亮的聊天界面。

这个组合就像是:vLLM是强大的发动机,Chainlit是漂亮的车身,两者结合让你既能享受高性能,又有好的用户体验。

2. 环境准备与快速部署

好了,理论部分就到这里。现在让我们开始动手,我会带你一步步把环境搭建起来。

2.1 系统要求检查

在开始之前,确保你的环境满足以下要求:

  • 操作系统:Linux(Ubuntu 20.04+推荐)或 macOS
  • Python版本:3.8 或更高版本
  • 内存:至少8GB RAM(推荐16GB以上)
  • 存储空间:模型文件大约4GB,加上依赖需要预留10GB空间
  • GPU:可选,有GPU会更快,但CPU也能运行

如果你用的是云服务器,选择配置时记住:内存比CPU核心数更重要。大模型运行时很吃内存,CPU慢一点只是推理速度慢,内存不够就直接跑不起来了。

2.2 一键部署脚本

为了简化流程,我准备了一个完整的部署脚本。你只需要复制粘贴,就能完成所有环境配置:

#!/bin/bash

# 创建项目目录
mkdir -p ~/qwen3-thinking
cd ~/qwen3-thinking

# 更新系统包
sudo apt update
sudo apt upgrade -y

# 安装Python依赖
sudo apt install -y python3-pip python3-venv

# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate

# 安装vLLM(根据是否有GPU选择版本)
if command -v nvidia-smi &> /dev/null; then
    echo "检测到GPU,安装GPU版本的vLLM"
    pip install vllm
else
    echo "未检测到GPU,安装CPU版本的vLLM"
    pip install vllm --extra-index-url https://download.pytorch.org/whl/cpu
fi

# 安装Chainlit
pip install chainlit

# 安装其他依赖
pip install fastapi uvicorn

echo "环境安装完成!"

把这个脚本保存为setup.sh,然后运行:

chmod +x setup.sh
./setup.sh

脚本运行过程中,你会看到各种包在下载安装。如果网络不太好,这个过程可能需要几分钟,耐心等待一下。

2.3 下载模型文件

环境准备好了,接下来下载模型。这里有两种方式:

方式一:直接下载(推荐)

# 进入项目目录
cd ~/qwen3-thinking

# 创建模型目录
mkdir -p models

# 下载模型文件(这里需要替换为实际的下载链接)
# 注意:由于模型文件较大,建议使用wget或curl下载
echo "请从模型发布页面获取下载链接,然后使用以下命令下载:"
echo "wget -O models/qwen3-4b-thinking.gguf '你的模型下载链接'"

方式二:使用Hugging Face(如果有访问权限)

pip install huggingface-hub

# 下载模型
python -c "
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id='TeichAI/Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF',
    local_dir='./models',
    local_dir_use_symlinks=False
)
"

下载完成后,检查一下文件大小。GGUF格式的4B模型通常在4-5GB左右,如果文件太小,可能是下载不完整。

3. 使用vLLM部署模型

模型下载好了,现在让我们用vLLM把它跑起来。vLLM的部署非常简单,几乎不需要什么配置。

3.1 启动vLLM服务

创建一个启动脚本start_vllm.py

from vllm import LLM, SamplingParams
import argparse

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--model", type=str, default="./models/qwen3-4b-thinking.gguf")
    parser.add_argument("--port", type=int, default=8000)
    parser.add_argument("--host", type=str, default="0.0.0.0")
    args = parser.parse_args()
    
    print(f"正在加载模型: {args.model}")
    
    # 初始化LLM
    llm = LLM(
        model=args.model,
        trust_remote_code=True,
        max_model_len=4096,  # 根据你的内存调整
        gpu_memory_utilization=0.8,  # GPU内存使用率
    )
    
    print("模型加载完成!")
    print(f"服务地址: http://{args.host}:{args.port}")
    
    # 这里vLLM会自动启动API服务
    # 在实际使用中,vLLM有内置的API服务器
    # 我们这里主要演示如何初始化模型

if __name__ == "__main__":
    main()

但更简单的方式是直接使用vLLM的命令行工具。创建一个启动脚本start_server.sh

#!/bin/bash

cd ~/qwen3-thinking
source venv/bin/activate

# 启动vLLM服务器
python -m vllm.entrypoints.openai.api_server \
    --model ./models/qwen3-4b-thinking.gguf \
    --port 8000 \
    --host 0.0.0.0 \
    --max-model-len 4096 \
    --served-model-name qwen3-thinking

给脚本执行权限并运行:

chmod +x start_server.sh
./start_server.sh

3.2 验证服务是否正常运行

服务启动后,我们需要确认它是否正常工作。打开一个新的终端窗口,运行:

# 检查服务状态
curl http://localhost:8000/health

# 或者使用更详细的信息
curl http://localhost:8000/v1/models

你应该能看到类似这样的响应:

{
  "object": "list",
  "data": [
    {
      "id": "qwen3-thinking",
      "object": "model",
      "created": 1677610602,
      "owned_by": "vllm"
    }
  ]
}

还有一个更直接的方法,就是查看日志文件。按照文档说明:

cat /root/workspace/llm.log

如果看到模型加载成功的日志信息,就说明服务正常运行了。

4. 使用Chainlit创建交互界面

模型服务跑起来了,但对着命令行聊天总是不太方便。现在我们来创建一个漂亮的Web界面。

4.1 创建Chainlit应用

Chainlit的使用非常简单,只需要一个Python文件。创建app.py

import chainlit as cl
import openai
import os
from typing import Optional

# 配置OpenAI客户端(指向我们的vLLM服务)
client = openai.OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="not-needed"  # vLLM不需要API key
)

@cl.on_chat_start
async def start_chat():
    """
    聊天开始时的初始化
    """
    # 设置聊天设置
    settings = await cl.ChatSettings(
        [
            cl.input_widget.Slider(
                id="temperature",
                label="温度",
                initial=0.7,
                min=0,
                max=1,
                step=0.1
            ),
            cl.input_widget.Slider(
                id="max_tokens",
                label="最大生成长度",
                initial=1024,
                min=128,
                max=4096,
                step=128
            )
        ]
    ).send()
    
    # 欢迎消息
    welcome_msg = cl.Message(
        content="👋 你好!我是基于Qwen3-4B-Thinking模型构建的AI助手。我特别擅长代码生成和逻辑推理,有什么可以帮你的吗?",
        author="助手"
    )
    await welcome_msg.send()

@cl.on_message
async def main(message: cl.Message):
    """
    处理用户消息
    """
    # 获取聊天设置
    settings = await cl.ChatSettings(
        [
            cl.input_widget.Slider(
                id="temperature",
                label="温度",
                initial=0.7,
                min=0,
                max=1,
                step=0.1
            ),
            cl.input_widget.Slider(
                id="max_tokens",
                label="最大生成长度",
                initial=1024,
                min=128,
                max=4096,
                step=128
            )
        ]
    ).send()
    
    # 创建响应消息
    msg = cl.Message(content="", author="助手")
    await msg.send()
    
    try:
        # 调用vLLM API
        response = client.chat.completions.create(
            model="qwen3-thinking",
            messages=[
                {
                    "role": "system",
                    "content": "你是一个有帮助的AI助手,擅长代码生成和逻辑推理。请用中文回答用户的问题。"
                },
                {
                    "role": "user",
                    "content": message.content
                }
            ],
            temperature=settings["temperature"],
            max_tokens=settings["max_tokens"],
            stream=True  # 启用流式输出
        )
        
        # 流式输出响应
        full_response = ""
        for chunk in response:
            if chunk.choices[0].delta.content is not None:
                token = chunk.choices[0].delta.content
                full_response += token
                await msg.stream_token(token)
        
        # 更新完整消息
        await msg.update()
        
    except Exception as e:
        error_msg = f"抱歉,出错了: {str(e)}"
        await cl.Message(content=error_msg, author="系统").send()

@cl.on_settings_update
async def setup_agent(settings):
    """
    处理设置更新
    """
    print("设置已更新:", settings)
    return "设置已更新!"

4.2 配置Chainlit

Chainlit需要一个配置文件来定义应用的行为。创建chainlit.md

# 欢迎使用 Qwen3-4B-Thinking 聊天助手

这是一个基于Qwen3-4B-Thinking模型的智能聊天助手,特别优化了代码生成和逻辑推理能力。

## 功能特点
- 💭 思维链推理:模型会展示思考过程
- 💻 代码生成:支持多种编程语言
- 🔍 逻辑分析:擅长解决复杂问题
- 🎯 精准回答:基于GPT-5-Codex微调

## 使用提示
1. 问题描述越详细,回答越准确
2. 可以要求模型展示思考步骤
3. 代码相关问题会得到更好的回答

开始聊天吧!

再创建一个配置文件.chainlit/config.toml

[project]
name = "Qwen3-4B-Thinking Chat"
description = "基于Qwen3-4B-Thinking模型的智能聊天助手"

[UI]
name = "Qwen3-4B-Thinking"
description = "代码生成与逻辑推理专家"

[features]
telemetry = false

[model]
provider = "vllm"
model = "qwen3-thinking"

4.3 启动Chainlit应用

现在一切就绪,启动Chainlit:

# 确保在虚拟环境中
cd ~/qwen3-thinking
source venv/bin/activate

# 启动Chainlit
chainlit run app.py -w --port 8500

打开浏览器,访问 http://localhost:8500,你就能看到漂亮的聊天界面了。

5. 实战演示与效果测试

界面有了,现在让我们实际测试一下模型的能力。我会展示几个典型的使用场景。

5.1 代码生成测试

在聊天界面中输入:

帮我写一个Python函数,计算斐波那契数列的第n项,要求:
1. 使用递归实现
2. 添加类型提示
3. 包含文档字符串
4. 添加性能优化(使用缓存)

看看模型的回答。Qwen3-4B-Thinking经过GPT-5-Codex微调,在代码生成方面应该表现不错。它应该会生成类似这样的代码:

from functools import lru_cache

@lru_cache(maxsize=None)
def fibonacci(n: int) -> int:
    """
    计算斐波那契数列的第n项
    
    参数:
        n (int): 要计算的项数索引(从0开始)
    
    返回:
        int: 斐波那契数列的第n项值
    
    示例:
        >>> fibonacci(0)
        0
        >>> fibonacci(1)
        1
        >>> fibonacci(10)
        55
    """
    if n < 0:
        raise ValueError("n必须是非负整数")
    elif n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

注意看模型是否展示了思考过程,这是"Thinking"版本的特点。

5.2 逻辑推理测试

测试模型的逻辑推理能力:

问题:三个人去住店,一晚30元。三个人每人掏了10元凑够30元交给了老板。
后来老板说今天优惠只要25元就够了,拿出5元命令服务生退还给他们。
服务生偷偷藏起了2元,然后把剩下的3元钱分给了那三个人,每人分到1元。
这样,一开始每人掏了10元,现在又退回1元,也就是10-1=9,每人只花了9元钱。
3个人每人9元,3×9=27元,加上服务生藏起的2元等于29元,还有一元钱去了哪里?

观察模型的回答是否清晰,是否能够指出问题中的逻辑错误。好的回答应该指出:27元已经包含了服务生藏起的2元(25元房费+2元服务生私藏),不应该再加一次。

5.3 实际应用场景

让我们测试一个更实际的场景:

我需要一个Python脚本,实现以下功能:
1. 读取当前目录下的所有CSV文件
2. 合并这些CSV文件
3. 对合并后的数据进行简单的统计分析(计数、平均值、标准差)
4. 将结果保存到新的CSV文件
5. 生成一个简单的统计报告(文本格式)

请写出完整的代码,并添加适当的注释。

这个测试能看出模型在实际工作场景中的实用性。好的实现应该包括错误处理、进度提示等细节。

6. 常见问题与解决方案

在实际使用中,你可能会遇到一些问题。这里我整理了一些常见问题和解决方法。

6.1 模型加载失败

问题:启动vLLM时提示模型加载失败

可能原因和解决

  1. 模型文件损坏:重新下载模型文件,检查文件大小是否完整
  2. 内存不足:检查系统内存,4B模型至少需要8GB空闲内存
  3. 格式不支持:确保下载的是GGUF格式的模型文件
# 检查内存使用
free -h

# 检查模型文件
ls -lh models/qwen3-4b-thinking.gguf
# 正常大小应该在4-5GB左右

6.2 服务无法访问

问题:Chainlit无法连接到vLLM服务

解决步骤

  1. 检查vLLM服务是否运行:ps aux | grep vllm
  2. 检查端口是否被占用:netstat -tlnp | grep 8000
  3. 检查防火墙设置
  4. 尝试使用localhost而不是0.0.0.0
# 重启vLLM服务(指定明确的主机)
python -m vllm.entrypoints.openai.api_server \
    --model ./models/qwen3-4b-thinking.gguf \
    --port 8000 \
    --host 127.0.0.1

6.3 响应速度慢

问题:模型推理速度很慢

优化建议

  1. 使用GPU:如果有NVIDIA GPU,确保安装了正确的CUDA驱动
  2. 调整参数:减少max_model_len可以降低内存使用
  3. 批处理:如果有多个请求,可以批量处理
# 在启动vLLM时添加这些参数可以提升性能
llm = LLM(
    model="./models/qwen3-4b-thinking.gguf",
    max_model_len=2048,  # 减少最大长度
    gpu_memory_utilization=0.9,  # 提高GPU利用率
    enable_prefix_caching=True,  # 启用前缀缓存
)

6.4 Chainlit界面问题

问题:Chainlit界面显示异常或功能不正常

解决

  1. 更新Chainlit到最新版本:pip install --upgrade chainlit
  2. 清除浏览器缓存
  3. 检查Chainlit配置是否正确
# 查看Chainlit日志
chainlit run app.py --debug

# 检查依赖版本
pip list | grep -E "(chainlit|openai|fastapi)"

7. 进阶使用与优化

基础功能都跑通了,现在来看看如何优化和扩展这个系统。

7.1 性能优化配置

vLLM提供了很多性能调优参数。创建一个优化版的启动脚本start_optimized.sh

#!/bin/bash

cd ~/qwen3-thinking
source venv/bin/activate

# 优化版的vLLM启动参数
python -m vllm.entrypoints.openai.api_server \
    --model ./models/qwen3-4b-thinking.gguf \
    --port 8000 \
    --host 0.0.0.0 \
    --max-model-len 4096 \
    --gpu-memory-utilization 0.9 \
    --max-num-batched-tokens 4096 \
    --max-num-seqs 16 \
    --served-model-name qwen3-thinking \
    --enable-prefix-caching \
    --block-size 16 \
    --swap-space 4  # 如果有GPU内存交换需求

关键参数说明:

  • --gpu-memory-utilization 0.9:GPU内存使用率,越高性能越好
  • --max-num-batched-tokens 4096:批处理的最大token数
  • --enable-prefix-caching:启用前缀缓存,加速重复提示
  • --block-size 16:内存块大小,影响内存效率

7.2 扩展Chainlit功能

Chainlit支持很多高级功能。让我们增强一下app.py

import chainlit as cl
import openai
import asyncio
from datetime import datetime
import json

# 扩展的Chainlit应用
@cl.on_chat_start
async def start_chat():
    """
    增强的聊天初始化
    """
    # 添加更多设置选项
    settings = await cl.ChatSettings(
        [
            cl.input_widget.Slider(
                id="temperature",
                label="创造性",
                initial=0.7,
                min=0,
                max=2,
                step=0.1,
                description="值越高回答越有创造性"
            ),
            cl.input_widget.Slider(
                id="max_tokens",
                label="回答长度",
                initial=1024,
                min=256,
                max=4096,
                step=256
            ),
            cl.input_widget.Select(
                id="response_style",
                label="回答风格",
                values=["简洁", "详细", "专业", "友好"],
                initial_index=0
            ),
            cl.input_widget.Switch(
                id="show_thinking",
                label="显示思考过程",
                initial=True
            )
        ]
    ).send()
    
    # 创建聊天历史记录
    cl.user_session.set("chat_history", [])
    
    # 更丰富的欢迎消息
    welcome_msg = f"""🤖 欢迎使用 Qwen3-4B-Thinking 智能助手!

当前时间:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}
模型版本:Qwen3-4B-Thinking-GGUF
服务状态:✅ 正常运行

我特别擅长:
• 💻 代码生成与调试
• 🔍 逻辑推理与问题解决
• 📝 文本分析与总结
• 🎯 技术问题解答

试试问我:
1. "写一个Python爬虫"
2. "解释一下什么是递归"
3. "帮我分析这个逻辑问题"
"""
    
    await cl.Message(content=welcome_msg, author="系统").send()

@cl.on_message
async def handle_message(message: cl.Message):
    """
    增强的消息处理
    """
    # 获取设置
    settings = await cl.ChatSettings().get()
    
    # 获取聊天历史
    chat_history = cl.user_session.get("chat_history", [])
    
    # 构建消息历史
    messages = [
        {
            "role": "system",
            "content": f"""你是一个有帮助的AI助手,基于Qwen3-4B-Thinking模型。
回答风格:{settings.get('response_style', '简洁')}
{'请展示思考过程' if settings.get('show_thinking', True) else '直接给出答案'}
用中文回答,保持专业和准确。"""
        }
    ]
    
    # 添加上下文历史(最近5轮)
    for hist_msg in chat_history[-10:]:  # 保留最近10条消息
        messages.append(hist_msg)
    
    # 添加当前消息
    messages.append({"role": "user", "content": message.content})
    
    # 创建响应消息
    msg = cl.Message(content="", author="助手")
    await msg.send()
    
    try:
        # 调用vLLM
        client = openai.OpenAI(
            base_url="http://localhost:8000/v1",
            api_key="not-needed"
        )
        
        response = client.chat.completions.create(
            model="qwen3-thinking",
            messages=messages,
            temperature=settings.get("temperature", 0.7),
            max_tokens=settings.get("max_tokens", 1024),
            stream=True
        )
        
        # 流式输出
        full_response = ""
        async for chunk in response:
            if chunk.choices[0].delta.content:
                token = chunk.choices[0].delta.content
                full_response += token
                await msg.stream_token(token)
        
        await msg.update()
        
        # 保存到历史
        chat_history.append({"role": "user", "content": message.content})
        chat_history.append({"role": "assistant", "content": full_response})
        cl.user_session.set("chat_history", chat_history)
        
        # 添加操作按钮
        actions = [
            cl.Action(name="copy", value=full_response, label="📋 复制"),
            cl.Action(name="regenerate", value=message.content, label="🔄 重新生成"),
            cl.Action(name="feedback", value=full_response, label="💬 反馈")
        ]
        
        await cl.Message(content="", actions=actions).send()
        
    except Exception as e:
        error_msg = f"❌ 请求失败: {str(e)}"
        await cl.Message(content=error_msg, author="系统").send()

@cl.action_callback("copy")
async def on_copy(action: cl.Action):
    """
    复制操作回调
    """
    await cl.Message(content="✅ 已复制到剪贴板").send()

@cl.action_callback("regenerate")
async def on_regenerate(action: cl.Action):
    """
    重新生成回调
    """
    await cl.Message(content="🔄 重新生成中...").send()
    # 这里可以重新调用模型生成

7.3 添加文件上传功能

Chainlit支持文件上传,让我们添加这个功能:

@cl.on_chat_start
async def start_chat_with_files():
    # ... 之前的初始化代码 ...
    
    # 配置文件上传
    files = await cl.AskFileMessage(
        content="你可以上传文件让我分析(支持txt、pdf、代码文件等)",
        accept=["text/plain", "application/pdf", "text/x-python", "application/json"],
        max_size_mb=10
    ).send()

@cl.on_message
async def handle_message_with_files(message: cl.Message):
    # 检查是否有文件
    if message.elements:
        for element in message.elements:
            if element.type == "file":
                # 读取文件内容
                content = element.content.decode("utf-8")
                # 将文件内容添加到消息中
                enhanced_content = f"文件内容:\n```\n{content[:1000]}...\n```\n\n问题:{message.content}"
                # 使用增强的内容调用模型
                # ... 调用模型的代码 ...

8. 总结与下一步建议

通过这个完整的实战教程,你应该已经成功部署了Qwen3-4B-Thinking模型,并搭建了一个功能完善的Web交互界面。让我们回顾一下关键步骤和收获。

8.1 核心收获

  1. 完整的部署流程:从环境准备到服务运行,你掌握了使用vLLM部署GGUF格式模型的完整流程
  2. Web界面开发:学会了用Chainlit快速构建AI应用的交互界面
  3. 问题解决能力:了解了常见问题的排查方法和优化技巧
  4. 实际应用经验:通过测试案例,体验了模型在代码生成和逻辑推理方面的能力

8.2 性能对比

为了让你更清楚这个方案的优势,这里有个简单的对比:

方面 传统部署方式 vLLM + Chainlit方案
部署时间 30-60分钟 10-15分钟
内存占用 较高 优化较好
推理速度 较慢 快速(支持连续批处理)
界面开发 需要前端技能 纯Python,简单快速
维护成本 较高 较低

8.3 下一步学习建议

如果你对这个方案感兴趣,想进一步深入:

  1. 模型微调:尝试在自己的数据集上微调模型,让它更适应你的特定需求
  2. 性能优化:学习vLLM的高级配置,进一步优化推理速度和内存使用
  3. 功能扩展:为Chainlit添加更多功能,如文件处理、多轮对话管理、历史记录等
  4. 生产部署:学习如何将这个应用部署到生产环境,添加用户认证、监控、日志等
  5. 模型比较:尝试其他模型,比较不同模型在相同任务上的表现

8.4 实用小贴士

最后分享几个实用的小技巧:

  1. 监控服务状态:使用htopnvidia-smi监控资源使用情况
  2. 日志管理:配置日志轮转,避免日志文件过大
  3. 备份配置:定期备份你的配置文件和脚本
  4. 社区资源:关注vLLM和Chainlit的GitHub仓库,及时获取更新
  5. 测试脚本:编写自动化测试脚本,定期检查服务健康状态

记住,技术的学习是一个持续的过程。不要怕遇到问题,每个问题的解决都是你技能提升的机会。这个Qwen3-4B-Thinking的部署方案只是一个起点,你可以基于它构建更复杂、更有趣的AI应用。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

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

更多推荐