Phi-3-Mini-128K入门必看Python调用API与基础Prompt工程指南如果你刚开始接触AI模型看到“API调用”、“Prompt工程”这些词可能有点发怵觉得这是高手才玩的东西。别担心今天这篇文章就是为你准备的。咱们不聊那些复杂的概念就手把手带你用最基础的Python知识把Phi-3-Mini-128K这个模型用起来并且让它听你的话生成你想要的内容。Phi-3-Mini-128K是个挺厉害的文本生成模型理解能力强上下文也长。但模型再厉害也得靠我们“下指令”才能干活。这个“下指令”的过程就是Prompt工程。听起来玄乎其实核心就一句话你怎么问它就怎么答。问得好答案就精准问得模糊答案就可能跑偏。这篇文章的目标很简单让你在半小时内掌握用Python调用这个模型API的基本方法并学会几种最实用、立马就能上手的Prompt编写技巧。咱们从零开始一步步来。1. 环境准备万事开头第一步在开始写代码调用模型之前我们需要先把“舞台”搭好。这个过程很简单就像你要做饭得先把锅和食材准备好。1.1 安装Python如果你电脑上还没有Python这是第一步。建议安装Python 3.8或以上的版本稳定性更好。你可以去Python官网下载安装包安装时记得勾选“Add Python to PATH”这个选项这样后面在命令行里使用Python会更方便。安装完成后打开你的命令行工具Windows上是CMD或PowerShellMac或Linux上是终端输入下面的命令检查是否安装成功python --version或者python3 --version如果显示了类似Python 3.10.0的版本信息那就说明安装成功了。1.2 安装必要的Python库我们需要两个核心的库来帮助我们和模型的API进行通信。requests这是一个非常流行的HTTP库用来向网络上的API接口发送请求和接收响应。几乎所有的API调用都离不开它。openai这是OpenAI官方提供的Python SDK软件开发工具包。虽然Phi-3-Mini-128K不是OpenAI的模型但很多兼容OpenAI API格式的模型服务包括一些部署了Phi-3的云服务或本地服务都可以使用这个库来调用因为它定义了一套标准的请求格式用起来非常方便。安装它们只需要一行命令。打开命令行输入pip install requests openai如果速度慢可以尝试使用国内的镜像源比如清华的源pip install requests openai -i https://pypi.tuna.tsinghua.edu.cn/simple看到“Successfully installed”的字样就说明库都装好了。1.3 获取API密钥与端点这是最关键的一步。调用API就像打电话你需要知道电话号码API端点地址和密码API密钥。API密钥一串独特的字符用来证明你有权限使用这个服务。通常你需要在提供该模型API服务的平台上注册账号并创建。API端点就是模型服务所在的网络地址。请注意Phi-3-Mini-128K是微软开源的模型你需要将它部署在某个地方比如你自己的服务器或者使用某个云平台提供的托管服务才能获得一个可以调用的API端点。本文假设你已经有了一个可用的端点例如https://your-api-server.com/v1和对应的API密钥例如sk-xxxxxxxxxxxx。为了安全我们不要在代码里直接写死这些敏感信息。一个好的习惯是使用环境变量。在命令行中临时设置重启后失效# 在Mac/Linux上 export API_KEYsk-你的密钥 export API_BASEhttps://你的API端点地址 # 在Windows PowerShell上 $env:API_KEYsk-你的密钥 $env:API_BASEhttps://你的API端点地址这样我们的代码就可以安全地读取这些信息了。2. 第一次握手用Python调用API环境搭好了钥匙也拿到了现在我们来敲开模型的大门。这里我会介绍两种方式你可以根据你的模型服务类型选择。2.1 方法一使用通用的requests库如果你的API服务是完全自定义的或者你想更清楚地理解底层发生了什么用requests库是最直接的方式。import requests import os # 从环境变量读取API密钥和地址 API_KEY os.getenv(API_KEY) API_BASE os.getenv(API_BASE) # 定义请求的URL这里假设端点后面接的是 /chat/completions 路径 url f{API_BASE}/chat/completions # 设置请求头告诉服务器你的身份和发送的数据格式 headers { Authorization: fBearer {API_KEY}, Content-Type: application/json } # 构建请求体也就是你给模型的“指令” data { model: phi-3-mini-128k-instruct, # 指定模型名称根据你的服务调整 messages: [ {role: user, content: 你好请介绍一下你自己。} ], max_tokens: 150, # 控制模型回答的最大长度 temperature: 0.7 # 控制回答的随机性0.0最确定1.0最随机 } # 发送POST请求 response requests.post(url, headersheaders, jsondata) # 检查请求是否成功 if response.status_code 200: result response.json() # 提取模型返回的回复内容 reply result[choices][0][message][content] print(模型回复, reply) else: print(f请求失败状态码{response.status_code}) print(response.text)把上面的代码保存为一个.py文件比如first_call.py在命令行里运行它python first_call.py如果一切顺利你应该能看到模型的一段自我介绍。恭喜你你已经成功完成了第一次API调用2.2 方法二使用OpenAI格式的SDK如果你的模型服务兼容OpenAI的API格式很多服务都兼容因为这样用户使用起来更方便那么使用openai库会让代码更简洁。from openai import OpenAI import os # 初始化客户端指向你的API端点 client OpenAI( api_keyos.getenv(API_KEY), base_urlos.getenv(API_BASE) # 关键这里替换成你的服务地址 ) # 发起对话请求 response client.chat.completions.create( modelphi-3-mini-128k-instruct, # 指定模型 messages[ {role: user, content: 你好请介绍一下你自己。} ], max_tokens150, temperature0.7 ) # 打印回复 print(模型回复, response.choices[0].message.content)这段代码的功能和上一段完全一样但看起来是不是更清爽openai库帮你封装了HTTP请求的细节你只需要关心你要发送什么内容。无论用哪种方法核心都是构建一个messages列表。这个列表定义了对话的历史和当前问题。role可以是“system”系统指令设定AI的角色、“user”用户说的话、“assistant”AI之前的回复。通过组合这些消息我们就能实现多轮对话。3. 让AI听懂你的话基础Prompt工程模型调通了但你可能发现有时候它的回答不尽如人意。问题往往出在“提问方式”上。Prompt工程就是优化提问方式的艺术。下面这几个技巧能立刻提升你与模型沟通的效率。3.1 技巧一指令清晰化——别让AI猜模糊的指令得到模糊的回答。你要像给一个聪明但缺乏背景知识的新手下达工作指令一样越具体越好。模糊的Prompt“写一篇关于健康的文章。”清晰的Prompt“以一名营养师的身份为都市白领写一篇约500字的博客文章主题是‘工作日午餐的快捷健康选择’。文章需要包含三个具体的食谱建议风格轻松实用并鼓励读者留言分享自己的经验。”看第二个指令明确了角色营养师、受众都市白领、长度500字、主题范围工作日午餐、具体内容要求三个食谱、风格轻松实用和互动引导鼓励留言。模型有了这些“路标”生成的内容就会精准得多。在你的代码里可以这样用clear_prompt 你是一名经验丰富的旅行博主。请为第一次去日本东京的游客规划一个为期3天的经典行程。 要求 1. 每天上午、下午、晚上的活动安排。 2. 包含必去的景点、地道的餐饮推荐。 3. 给出大致的交通方式和预算建议。 4. 语气热情、富有感染力。 messages [{role: user, content: clear_prompt}] # ... 将messages放入API请求中3.2 技巧二提供示例——展示“标准答案”对于格式固定或逻辑复杂的任务直接告诉模型“我想要这样的”是最快的方法。这就是“少样本学习”Few-Shot Learning。假设你想让模型把一段口语化的用户反馈整理成结构化的bug报告。example_prompt 请将下面的用户反馈整理成结构化的Bug报告。 示例 用户反馈“你们这个App一用相机就闪退重启手机也没用我手机是iPhone13系统是最新的。” 结构化报告 - **问题标题**App在使用相机功能时发生闪退 - **设备信息**iPhone 13系统版本iOS 16.5 - **复现步骤**1. 打开App 2. 点击相机功能 3. App闪退关闭 - **问题频率**每次尝试均发生 - **用户期望**正常使用相机功能 现在请处理新的反馈 用户反馈“登录的时候一直提示网络错误但我其他App上网都正常安卓手机。” messages [{role: user, content: example_prompt}]通过提供一个清晰的例子模型就能很好地模仿输出格式和内容要点。3.3 技巧三控制风格与长度——给回答“定调”通过Prompt中的关键词和参数你可以轻松控制生成文本的风格和长度。控制风格在指令中加入风格关键词。“请用专业、严谨的学术论文风格阐述...”“请模仿李白诗歌的风格写一首关于月亮的诗。”“请用幽默风趣的口吻解释什么是区块链。”控制长度在Prompt中直接说明“请用一段话约100字概括...”“请列出3-5个要点...”。使用API参数max_tokens这个参数直接限制模型生成的最大令牌数可以粗略理解为字数。对于总结、简短回复可以设为100-300对于创作、长文可以设为1000或更多。# 一个综合控制风格和长度的例子 style_prompt “请以科技杂志记者的口吻用大约200字简要介绍人工智能在医疗影像诊断中的最新应用进展。” messages [{role: user, content: style_prompt}] # 在API调用中同时使用max_tokens进行硬性长度限制 response client.chat.completions.create( modelphi-3-mini-128k-instruct, messagesmessages, max_tokens250, # 设置生成内容的最大长度 temperature0.5 # 温度设为0.5在准确性和创造性之间取得平衡 )4. 实战模板几个即拿即用的Prompt场景了解了基础技巧我们来组合一下看看在不同场景下如何应用。你可以把这些模板直接复制到你的代码里试试。4.1 场景一邮件助手需求将一段杂乱的工作汇报整理成格式清晰、语言得体的周报邮件。email_template 你是一名项目经理助理。请将以下杂乱的工作记录整理成一封发给团队成员的周报汇总邮件。 要求 1. 邮件主题明确。 2. 正文开头有简要概述。 3. 将工作内容分为“已完成”、“进行中”、“下周计划”三个部分用项目符号列出。 4. 结尾有鼓励性话语和签名签名用[你的名字]代替。 5. 语言正式、简洁、积极。 工作记录 {user_input} # 使用时将 {user_input} 替换为实际的工作记录文本4.2 场景二代码解释器需求看不懂某段代码让AI帮你解释。code_explain_template 你是一个耐心的编程导师。请为编程初学者解释下面这段代码 1. 这段代码整体实现了什么功能 2. 请逐行解释关键代码的作用。 3. 指出代码中可能需要注意的地方如果有的话。 代码 python {user_code}请用通俗易懂的语言解释。 使用时将 {user_code} 替换为需要解释的代码### 4.3 场景三创意头脑风暴 **需求**为新项目或新内容寻找创意点子。 python brainstorm_template 我们需要为一家主打“健康轻食”的新奶茶店策划营销活动。请你进行头脑风暴。 请提供 1. 3个有吸引力的店铺开业活动创意。 2. 2个适合在社交媒体上传播的线上互动话题。 3. 1句朗朗上口的宣传口号。 要求创意新颖贴合“健康”、“时尚”、“年轻”的品牌定位。 5. 总结与下一步走完这一趟你会发现用Python调用AI模型的API并没有想象中那么难。核心步骤其实就是三步准备好环境和密钥、用代码发送一个结构化的请求、然后处理返回的结果。而Prompt工程就像是学习如何与这位强大的AI伙伴高效沟通的语言指令越清晰、例子越具体它完成的任务就越出色。实际用起来你可以先从修改和运行本文的代码示例开始把里面的API地址和密钥换成你自己的。然后尝试用不同的Prompt模板去完成你手头真实的任务比如整理会议纪要、润色一段文字、或者生成一些简单的创意内容。过程中你可能会遇到回答不理想的情况这很正常回头看看是不是指令不够清楚或者换个问法试试。Phi-3-Mini-128K的能力远不止于此它还能处理更复杂的多轮对话、长文档分析等任务。当你熟悉了基础调用后可以尝试探索更高级的用法比如在messages中构建更长的对话历史或者利用它的长上下文能力来总结一篇完整的报告。最重要的是动手去试在实践中学到的东西最扎实。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。