Ollama单聊非流输出python代码分享及工单检查任务 / prompt的经验(20250215)

不知是不是网上错误代码多的原因,导致AI 被污染,我用 AI 写代码总是出错。遇到这种情况,还是建议直接看官方 文档 ,详细明了。

下面的代码提供了两个方案:一是构造 POST 请求;二是直接把官方文档中 curl 命令包裹起来执行。

由于我处理的是批量工单数据,所以单次聊天、非流式输出就够用了。

# 用 Python 代码发送 POST 请求
def ollama_chat1(prompt):
    import requests

    # 定义API的URL
    url = "http://localhost:11434/api/generate"

    # 定义请求的数据
    data = {
        "model": "qwen2:0.5b",
        "prompt": prompt,
        "stream": False
    }

    # 发送POST请求
    response = requests.post(url, json=data)

    # 处理响应
    if response.status_code == 200:
        # print("------------------")
        # print(response.json()["response"])
        return response.json()["response"]
    else:
        print(f"Error: {response.status_code}")
        return ""

# 直接运行 curl 命令
def ollama_chat2():
    # 运行命令
    import subprocess,json

    curl_command = """
curl http://localhost:11434/api/generate -d '{
    "model": "Qwen1.5-14B",
    "prompt":"给我讲讲量子计算的基本原理。",
    "stream": false
}'
    """
    curl_command = """
curl http://localhost:11434/api/chat -d '{
    "model": "qwen2:0.5b",
    "messages": [
        { "role": "user", "content": "why is the sky blue?" }
    ],
    "stream": false
}'
    """

    process = subprocess.run(curl_command, shell=True, text=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

    # 检查命令是否成功执行
    if process.returncode == 0:
        # 获取命令的标准输出
        response = process.stdout
    else:
        # 获取命令的错误输出
        response = process.stderr

    # 打印结果
    print("打印输出结果:")
    data = json.loads(response)
    response = data["response"]
    # 打印提取的内容
    print(response)

顺带谈一下工单检查任务中我写 prompt 的一些经验。

1、考虑到成本问题,像 deepseek 之类的带 CoT 就没必要了。输入10个字,输出1000字,很浪费时间。我是用 Qwen1.5 做第一遍过滤,Qwen2.5 做进一步思考,这样整个流程会快一些。

2、Qwen1.5 这种不带 CoT 的,prompt 不能写的太隐晦。最好是易于理解的,用直白的话让 LLM 像查词典一样知道该怎么做决定。比如符合什么条件的,就视为合格。还有数字处理问题,可以把60分、90分换成“合格”、“优秀”之类的词汇。需要复杂分析的,可以交给 Qwen2.5 之类带 CoT 的。

3、不带 CoT 的提示词如果过长,可以参考该文章优化。更像人脑的新型注意力机制,Meta让大模型自动屏蔽任务无关信息,准确率提高27%...

带 CoT 的提示词的写法可以参考微信公众号 澄然prompter 的文章:Deepseek学会人性本恶后太狠了!连律师都沉默

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值