DeepSeek 怎么离线分析代码?用 Ollama 审查 Python 文件并运行测试验证

在离线环境通过 Ollama 审查单个 Python 文件,用固定测试验证 DeepSeek 建议,避免模型直接执行命令。

DeepSeek 可以在离线环境分析代码,但模型建议不能代替测试。下面用 Ollama 审查一个单独的 Python 文件,要求输出结构化问题,再由本地测试验证。整个示例不允许模型执行命令或读取任意目录。

准备一个可验证的小函数

新建 discount.py:

DeepSeek 怎么离线分析代码?用 Ollama 审查 Python 文件并运行测试验证

def final_price(price: float, rate: float) -> float:
    return round(price * (1 - rate), 2)

再新建 test_discount.py:

from discount import final_price

def test_normal():
    assert final_price(100, 0.2) == 80.0

def test_invalid_rate():
    try:
        final_price(100, 1.5)
        assert False, "应拒绝超过1的折扣率"
    except ValueError:
        pass

只把指定文件内容发送给本地模型

Ollama Chat API支持本机消息请求。下面的脚本只读取固定文件,不递归扫描仓库:

import json
import urllib.request
from pathlib import Path

code = Path("discount.py").read_text(encoding="utf-8")
prompt = """审查下面函数。只输出JSON数组;每项含 severity、line、problem、fix。
重点检查输入边界,不要假装运行过代码。\n""" + code
body = json.dumps({
    "model": "deepseek-r1:1.5b",
    "messages": [{"role": "user", "content": prompt}],
    "stream": False,
}).encode()
request = urllib.request.Request(
    "http://127.0.0.1:11434/api/chat", data=body,
    headers={"Content-Type": "application/json"}
)
with urllib.request.urlopen(request) as response:
    result = json.load(response)
print(result["message"]["content"])

模型应指出 rate 缺少 0~1 边界,但也可能遗漏或误报。先人工核对行号和建议,再修改函数:

def final_price(price: float, rate: float) -> float:
    if price < 0:
        raise ValueError("price must be non-negative")
    if not 0 <= rate <= 1:
        raise ValueError("rate must be between 0 and 1")
    return round(price * (1 - rate), 2)

运行测试形成证据

python -m pip install pytest
python -m pytest -q

只有测试通过且人工复核业务规则,修改才算完成。再增加负价格、0、1 和浮点边界用例;模型说“已修复”不等于代码正确。

怎么确认过程真的离线

先按Ollama FAQ确认请求地址是本机服务;测试时断开外网,重复 API 请求和 pytest。若脚本、IDE 插件或网页界面另有联网功能,需要分别关闭和检查,不能因为模型在本机就推断整个工具链离线。

本文只审查假设函数,没有运行你的项目,也没有证明 1.5B 模型适合复杂安全审计。处理真实代码前要排除密钥和客户数据,并在隔离分支审阅差异;安全关键代码还需静态分析、依赖扫描和人工评审。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/32394.html

赞 (0)
AI小管家的头像AI小管家
DeepSeek 私有部署就一定安全吗?检查网络、日志和模型文件权限
上一篇 1小时前
DeepSeek 本地部署怎么加网页界面?用 Open WebUI 连接 Ollama
下一篇 1小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部