Phi-3-mini-4k-instruct快速上手:Ollama中使用curl命令行调用Phi-3-mini API

📅 发布时间:2026/7/4 23:43:53 👁️ 浏览次数:
Phi-3-mini-4k-instruct快速上手:Ollama中使用curl命令行调用Phi-3-mini API
Phi-3-mini-4k-instruct快速上手Ollama中使用curl命令行调用Phi-3-mini API你是不是已经用Ollama的Web界面玩过Phi-3-mini模型了点点按钮输入问题就能看到回答确实很方便。但如果你想把这个能力集成到自己的脚本里或者想批量处理一些文本任务每次都打开网页就太麻烦了。今天我就带你换个玩法——用最经典的命令行工具curl直接调用部署在Ollama里的Phi-3-mini模型API。这就像给你的工具箱里加了一把瑞士军刀灵活又强大。整个过程非常简单不需要复杂的编程跟着我做10分钟就能搞定。1. 准备工作认识我们的工具在开始动手之前我们先快速了解一下今天要用到的两个核心模型和工具。1.1 轻量级明星Phi-3-mini-4k-instructPhi-3-mini-4k-instruct是微软Phi-3系列里的小个子成员别看它只有38亿参数在轻量级模型里表现相当出色。它有几个特点很适合我们日常使用身材小巧38亿参数对硬件要求不高普通电脑也能跑得动。理解力强专门针对“跟随指令”做了优化你让它干什么它就能很好地理解并执行。上下文够用支持4K的上下文长度处理几页文档的总结或者一段不短的对话都没问题。用途广泛在常识问答、语言理解、基础数学和代码逻辑方面都有不错的表现。简单说这就是一个为你准备好的、聪明又听话的文本生成助手。1.2 万能胶水curl命令curl可能是在命令行世界里最常用的工具之一了它的核心功能就是和网络服务器“对话”。你可以用它来下载文件当然也可以用它来发送HTTP请求访问像Ollama模型API这样的服务。我们今天要做的就是用curl这个“信使”把我们的问题包装成一个HTTP请求发送给Ollama服务然后再把Ollama返回的模型答案“带”回来。你不需要安装任何额外的东西因为curl在Linux、macOS系统里基本是自带的Windows 10及以上版本也内置了。2. 第一步确保Ollama和模型在运行用API调用前提是服务端得在干活。我们得先确认两件事。2.1 检查Ollama服务打开你的终端或命令提示符/PowerShell输入以下命令curl http://localhost:11434/api/tags如果一切正常你会看到一个JSON格式的响应里面列出了你本地Ollama已经拉取下载好的所有模型。它可能长这样{models:[{name:phi3:mini,modified_at:2024-05-10T08:00:00.000000Z}]}如果你看到的是连接错误比如Connection refused那说明Ollama服务没有运行。你需要回到Ollama应用把它启动起来。2.2 确认Phi-3-mini模型已就位在上一步的响应里找找有没有phi3:mini这个模型名字。如果没有你需要先通过Ollama把它下载到本地。虽然通常用Web界面点选时就已经完成了下载但确认一下总没错。如果确实没有你可以在终端运行ollama pull phi3:mini等待它下载完成即可。这个模型不大下载应该很快。3. 核心步骤使用curl调用模型API好了服务在线模型就位现在可以开始真正的对话了。Ollama提供了一个统一的API端点/api/generate来生成文本。3.1 发起一次简单的对话最基本的调用只需要告诉模型“我说什么”和“你是谁”。在终端输入下面的命令curl http://localhost:11434/api/generate -d { model: phi3:mini, prompt: 请用一句话解释什么是人工智能。, stream: false }让我拆解一下这个命令curl http://localhost:11434/api/generate这是告诉curl去向本机11434端口的/api/generate地址发送请求。-d ‘{...}’-d参数表示后面跟着要发送的数据request body。我们发送的是一个JSON对象。JSON对象里的三个关键信息model: phi3:mini指定使用哪个模型。prompt: ...这就是我们给模型的指令或问题。stream: false这里我们设为false意思是让模型一次性生成完整回复再返回给我们。如果设为true则会像打字机一样一个字一个字地流式返回适合需要实时看到的场景。敲下回车稍等片刻你就会看到模型返回的答案了。返回的也是一个JSON其中response字段里的内容就是模型的回答。3.2 解读模型的回复一次成功的调用返回的JSON结构很清晰我们关心几个字段{ model: phi3:mini, created_at: 2024-05-10T08:00:00.000000Z, response: 人工智能是计算机科学的一个分支旨在创造能够执行通常需要人类智能的任务的机器或软件。, done: true, total_duration: 5141913750 }response这是核心模型的回答文本就在这里。done: true表示生成任务已顺利完成。total_duration模型生成所花费的总时间单位是纳秒。上面这个例子大约花了5.14秒。3.3 让对话更丰富使用系统提示词有时候我们想给模型设定一个角色或者规定它回答的风格。这就要用到system参数了。比如我们想让模型扮演一个幽默的哲学家curl http://localhost:11434/api/generate -d { model: phi3:mini, system: 你是一位说话幽默、喜欢用比喻的哲学家。, prompt: 人生的意义是什么, stream: false }加了system提示后模型的回答风格通常会向你设定的方向靠拢可能会给出像“人生就像一场没有排练的戏剧意义在于你即兴创作的每一个瞬间……”这类更有趣的回答。4. 进阶技巧玩转更多参数只会问问题还不够我们来看看如何通过调整参数更好地控制模型的输出。4.1 控制“创造力”temperature参数模型回答的随机性和创造性可以通过temperature温度来控制。你可以这样理解低温度如0.1模型更保守、更确定。对于同一个问题它每次的回答都会非常相似甚至一样。适合需要事实准确、风格一致的场景比如总结摘要。高温度如0.9模型更“放飞自我”更有创意每次的回答可能都不一样。适合写故事、想点子。试试对比一下# 低温度回答更稳定 curl http://localhost:11434/api/generate -d { model: phi3:mini, prompt: 写一句关于春天的诗。, options: { temperature: 0.1 }, stream: false } # 高温度回答更多变 curl http://localhost:11434/api/generate -d { model: phi3:mini, prompt: 写一句关于春天的诗。, options: { temperature: 0.9 }, stream: false }多运行几次高温度的版本你会发现每次生成的诗句都不太一样。4.2 节省令牌限制生成长度模型生成内容是按“令牌”可以粗略理解为词或字收费的这里指计算资源。我们可以通过num_predict参数来限制它最多生成多少个令牌防止它滔滔不绝。curl http://localhost:11434/api/generate -d { model: phi3:mini, prompt: 介绍法国的首都巴黎。, options: { num_predict: 50 # 限制最多生成50个令牌 }, stream: false }这样模型就会给出一个非常简短的介绍适合需要摘要的场景。4.3 保持连贯在对话中使用上下文真正的对话是有来有回的。要让模型记住之前的对话我们需要把历史记录也传给它。这通过context字段实现。不过/api/generate端点本身不直接维护多轮对话状态。更简单的方法是使用另一个端点/api/chat。这个接口是专门为多轮对话设计的。curl http://localhost:11434/api/chat -d { model: phi3:mini, messages: [ { role: user, content: 我最喜欢的颜色是蓝色。 }, { role: assistant, content: 好的蓝色是一种宁静而深邃的颜色像天空和海洋。 }, { role: user, content: 那你能根据这个颜色推荐一个旅游目的地吗 } ] }在这个例子里我们把整个对话历史用户说的话和模型之前的回复都放在messages这个列表里按顺序排列。模型在回答第三个问题时就能“看到”前面关于喜欢蓝色的对话从而给出更相关的推荐比如希腊的圣托里尼。5. 实战演练组合成一个实用脚本知道了单个命令怎么用我们就可以把它们组合起来做成一个真正有用的小工具。下面是一个简单的Bash脚本示例它从文件里读取问题调用模型然后把回答保存到另一个文件里。5.1 创建脚本文件创建一个新文件比如叫ask_phi3.sh用文本编辑器打开输入以下内容#!/bin/bash # 定义模型名称和API地址 MODELphi3:mini OLLAMA_HOSThttp://localhost:11434 # 检查是否提供了问题文件 if [ -z $1 ]; then echo 用法: $0 包含问题的文本文件 exit 1 fi QUESTION_FILE$1 ANSWER_FILE${QUESTION_FILE%.*}_answer.txt echo 正在使用 $MODEL 处理问题... echo 问题文件: $QUESTION_FILE echo 答案将保存到: $ANSWER_FILE # 读取问题文件内容 PROMPT$(cat $QUESTION_FILE) # 调用Ollama API curl -s -X POST $OLLAMA_HOST/api/generate \ -H Content-Type: application/json \ -d { \model\: \$MODEL\, \prompt\: \$PROMPT\, \stream\: false, \options\: { \temperature\: 0.7 } } | jq -r .response $ANSWER_FILE if [ $? -eq 0 ]; then echo 处理完成 echo --- 模型回答 --- cat $ANSWER_FILE else echo 处理过程中出现错误。 fi注意这个脚本用到了jq这个命令行JSON处理工具来从返回结果中提取response字段。如果你的系统没有安装可以用sudo apt install jqUbuntu/Debian或brew install jqmacOS来安装。如果不想安装也可以去掉| jq -r .response这部分但这样保存到文件里的就会是完整的JSON。5.2 使用脚本首先给脚本加上可执行权限chmod x ask_phi3.sh创建一个文本文件比如my_question.txt在里面写上你的问题例如为我制定一个为期一周的初学者健身计划每天不超过30分钟。运行脚本./ask_phi3.sh my_question.txt脚本会自动调用模型生成答案并保存到my_question_answer.txt文件中同时在终端显示出来。这样一来批量处理多个问题文件就非常方便了。6. 总结走完这一趟你会发现用curl调用Ollama的API并没有想象中那么神秘。它其实就是一种标准、灵活的与AI模型交互的方式。我们来回顾一下关键点基础调用是核心记住/api/generate这个端点以及model、prompt这两个必填参数。参数控制输出用temperature调节创意用num_predict控制长度用system设定角色这些小开关能让你得到更符合心意的结果。对话需用专用接口进行多轮聊天时使用/api/chat端点和messages数组会更方便。集成到自动化流程通过Shell脚本、Python脚本或其他任何能发送HTTP请求的工具你可以轻松地将Phi-3-mini的文本生成能力嵌入到你的工作流中比如自动回复邮件、生成报告草稿、分析用户反馈等等。相比于Web界面命令行API给了你编程的能力和集成的自由。下次当你需要让AI助手自动帮你处理些文本工作时不妨试试今天的方法。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。