技术教程 · 阅读约 6 分钟

本地跑 Qwen3 太卡?30 行代码接入 API,速度快 10 倍还省显卡

本地跑 Qwen3 太卡?30 行代码接入 API,速度快 10 倍还省显卡

很多人第一次跑 Qwen3 27B 的反应都是:显存爆了。

Q4 量化至少要 16GB 显存,Q8 直接 28GB 起步。大多数人的 3090 或 4090 跑起来都压力山大,更别提 MacBook 了。

但 Hacker News 今天把 Qwen3 2.5 27B 顶上了热门,理由是:它是当前本地开发的"甜蜜点"——推理质量比 7B 强一个档次,比 72B 轻盈得多,是代码审查、函数生成、文档总结的理想尺寸。

问题是,大多数人根本跑不动它。


换个思路:不跑本地,接 API

与其折腾量化、llama.cpp 参数调优,不如直接调 API。响应更快、不占显存、费用也低得出乎意料。

下面这个脚本实现三件事:

1. 批量读取当前目录所有 .py 文件

2. 让 Qwen3 27B 做代码审查,输出问题列表

3. 结果写入 review_report.md

全部代码 30 行出头,直接可运行。


完整代码


#!/usr/bin/env python3

"""

repo_review.py — 用 Qwen3 27B 批量审查当前目录的 Python 文件

依赖: pip install openai

"""



import os

from pathlib import Path

from openai import OpenAI



# ✅ 替换 base_url 即可,其余代码不动

client = OpenAI(

    api_key=os.environ.get("WULIANG_API_KEY", "your-api-key-here"),

    base_url="https://api2everything.xyz/v1",

)



SYSTEM_PROMPT = """你是一名资深 Python 工程师,专注代码审查。

对每个文件,给出:

1. 潜在 Bug(如有)

2. 性能隐患

3. 可读性建议

用 Markdown 列表格式,语言简洁直接。"""



def review_file(filepath: Path) -> str:

    code = filepath.read_text(encoding="utf-8", errors="ignore")

    if len(code.strip()) < 10:

        return "_文件为空,跳过_"



    response = client.chat.completions.create(

        model="qwen3-27b",          # 也可换成 deepseek-v3 / claude-3-5-sonnet

        messages=[

            {"role": "system", "content": SYSTEM_PROMPT},

            {"role": "user", "content": f"文件:`{filepath.name}`\n\n```python\n{code}\n```"},

        ],

        max_tokens=1024,

        temperature=0.2,            # 低温,减少幻觉

    )

    return response.choices[0].message.content



def main():

    py_files = list(Path(".").rglob("*.py"))

    py_files = [f for f in py_files if ".venv" not in str(f) and "__pycache__" not in str(f)]



    if not py_files:

        print("当前目录没有找到 .py 文件")

        return



    print(f"找到 {len(py_files)} 个文件,开始审查...\n")

    report_lines = ["# Code Review Report\n", f"共审查 {len(py_files)} 个文件\n\n---\n"]



    for f in py_files:

        print(f"  → {f}")

        result = review_file(f)

        report_lines.append(f"## `{f}`\n\n{result}\n\n---\n")



    Path("review_report.md").write_text("\n".join(report_lines), encoding="utf-8")

    print("\n✅ 审查完成,报告已写入 review_report.md")



if __name__ == "__main__":

    main()


跑起来只需三步


# 1. 安装依赖

pip install openai



# 2. 设置 API Key(注册无量Api 免费领 ¥1 余额)

export WULIANG_API_KEY="sk-xxxx"



# 3. 在你的项目目录里跑

cd your-project

python repo_review.py

输出的 review_report.md 长这样:


# Code Review Report

共审查 8 个文件



---



## `utils/db.py`



- **潜在 Bug**:第 42 行未关闭数据库连接,高并发下会耗尽连接池

- **性能隐患**:`SELECT *` 在大表上会有全量扫描,建议指定字段

- **可读性**:函数名 `do_thing()` 语义模糊,建议改为 `fetch_user_by_id()`


几个实用的扩展思路

换模型很简单,model 字段直接改就行:

| 场景 | 推荐模型 |

|------|----------|

| 日常代码审查 | qwen3-27b |

| 复杂逻辑分析 | deepseek-v3 |

| 需要最强推理 | claude-sonnet-4-5 |

| 预算有限 | gemini-flash-2.0 |

处理大文件:如果单文件超过 8000 tokens,可以按函数分块再合并结果,避免超出上下文。

CI 集成:把这个脚本加进 GitHub Actions,每次 PR 自动跑一遍,review_report.md 作为 artifact 上传,比人工 review 快不少。


关于费用

Qwen3 27B 调 API 比自己部署省事很多。我现在用的是无量Api,支持国内直连,不需要梯子,Qwen / DeepSeek / Claude / Gemini 300+ 模型都在一个 key 里。

价格比官方便宜大约 60%,审查一个中型项目(~50个文件)大概花几毛钱。注册还送 ¥1 试用余额,余额永久不过期,先试试再决定要不要充值。

🔗 api2everything.xyz — 改一行 base_url,其他代码原封不动

你们项目里有在用 AI 做自动化 review 的吗?欢迎评论区聊聊踩过的坑,或者贴出来一起看看。觉得有用的话点个赞,后续会继续写这类可以直接抄的实战脚本。