当前位置: 首页 > article >正文

Phi-3-mini-4k-instruct-gguf惊艳效果:生成符合PEP8规范的Python代码+单元测试

Phi-3-mini-4k-instruct-gguf惊艳效果生成符合PEP8规范的Python代码单元测试1. 模型简介与部署Phi-3-Mini-4K-Instruct是一个38亿参数的轻量级开源模型属于Phi-3系列中的Mini版本。该模型经过专门训练能够生成高质量的代码内容特别擅长Python编程任务。1.1 模型特点参数规模38亿参数轻量高效训练数据使用Phi-3数据集包含合成数据和过滤后的公开网站数据上下文长度支持4K token的上下文窗口优化方式经过监督微调和直接偏好优化性能表现在代码生成、逻辑推理等任务上表现出色1.2 部署方式模型使用vLLM进行部署并通过Chainlit提供前端交互界面。部署成功后可以通过以下方式验证cat /root/workspace/llm.log部署成功后可以通过Chainlit前端与模型进行交互输入编程任务请求模型将返回符合要求的代码。2. 代码生成效果展示2.1 基础Python函数生成让我们从简单的Python函数生成开始测试。我们向模型提出以下请求请生成一个Python函数计算斐波那契数列的第n项要求符合PEP8规范模型生成的代码如下def fibonacci(n: int) - int: 计算斐波那契数列的第n项 参数: n (int): 要计算的斐波那契数列项数 返回: int: 斐波那契数列的第n项 异常: ValueError: 如果n小于0 if n 0: raise ValueError(n必须是非负整数) if n 1: return n a, b 0, 1 for _ in range(2, n 1): a, b b, a b return b可以看到模型不仅生成了正确的算法实现还包含了完整的类型注解、文档字符串和异常处理完全符合PEP8规范。2.2 单元测试生成更令人印象深刻的是模型能够为生成的代码自动创建单元测试。我们继续请求请为上面的斐波那契函数生成单元测试使用pytest框架模型生成的测试代码如下import pytest from your_module import fibonacci def test_fibonacci_base_cases(): assert fibonacci(0) 0 assert fibonacci(1) 1 def test_fibonacci_positive_numbers(): assert fibonacci(2) 1 assert fibonacci(5) 5 assert fibonacci(10) 55 def test_fibonacci_negative_input(): with pytest.raises(ValueError): fibonacci(-1)测试用例覆盖了基本情形、正常输入和异常情况结构清晰符合最佳测试实践。3. 复杂代码生成案例3.1 数据处理管道让我们测试更复杂的场景请求生成一个数据处理管道请生成一个Python类实现从CSV文件读取数据、清洗数据处理缺失值、去除重复项和简单分析计算均值、中位数的功能要求符合PEP8规范并包含单元测试模型生成的代码如下import pandas as pd from typing import List, Optional, Dict class DataProcessor: 数据处理管道实现数据读取、清洗和分析功能 def __init__(self, filepath: str): 初始化DataProcessor 参数: filepath (str): CSV文件路径 self.filepath filepath self.data: Optional[pd.DataFrame] None def load_data(self) - None: 从CSV文件加载数据 self.data pd.read_csv(self.filepath) def clean_data(self) - None: 清洗数据: 1. 删除包含缺失值的行 2. 去除重复行 if self.data is None: raise ValueError(请先调用load_data()加载数据) self.data self.data.dropna() self.data self.data.drop_duplicates() def analyze_data(self, column: str) - Dict[str, float]: 分析指定列的数据 参数: column (str): 要分析的列名 返回: Dict[str, float]: 包含均值和中位数的字典 异常: ValueError: 如果列不存在 if self.data is None: raise ValueError(请先调用load_data()加载数据) if column not in self.data.columns: raise ValueError(f列{column}不存在) return { mean: self.data[column].mean(), median: self.data[column].median() }对应的单元测试import pytest import pandas as pd from your_module import DataProcessor from unittest.mock import patch pytest.fixture def sample_data(tmp_path): 创建测试用的CSV文件 data { A: [1, 2, 2, None, 3], B: [4, None, 4, 5, 6] } df pd.DataFrame(data) filepath tmp_path / test.csv df.to_csv(filepath, indexFalse) return filepath def test_load_data(sample_data): processor DataProcessor(sample_data) processor.load_data() assert processor.data is not None assert not processor.data.empty def test_clean_data(sample_data): processor DataProcessor(sample_data) processor.load_data() processor.clean_data() assert processor.data.isna().sum().sum() 0 assert not processor.data.duplicated().any() def test_analyze_data(sample_data): processor DataProcessor(sample_data) processor.load_data() processor.clean_data() result processor.analyze_data(A) assert mean in result assert median in result def test_invalid_column(sample_data): processor DataProcessor(sample_data) processor.load_data() with pytest.raises(ValueError): processor.analyze_data(C)3.2 REST API服务再测试一个API服务的生成请生成一个使用FastAPI创建的REST API服务提供用户管理功能创建、读取、更新、删除要求符合PEP8规范并包含单元测试模型生成的代码如下from fastapi import FastAPI, HTTPException from pydantic import BaseModel from typing import Dict, Optional app FastAPI() class User(BaseModel): username: str email: str full_name: Optional[str] None users_db: Dict[int, User] {} app.post(/users/, response_modelUser) def create_user(user: User): 创建新用户 user_id max(users_db.keys(), default0) 1 users_db[user_id] user return user app.get(/users/{user_id}, response_modelUser) def read_user(user_id: int): 获取用户信息 if user_id not in users_db: raise HTTPException(status_code404, detailUser not found) return users_db[user_id] app.put(/users/{user_id}, response_modelUser) def update_user(user_id: int, user: User): 更新用户信息 if user_id not in users_db: raise HTTPException(status_code404, detailUser not found) users_db[user_id] user return user app.delete(/users/{user_id}) def delete_user(user_id: int): 删除用户 if user_id not in users_db: raise HTTPException(status_code404, detailUser not found) del users_db[user_id] return {message: User deleted}对应的测试代码from fastapi.testclient import TestClient from your_module import app, User client TestClient(app) def test_create_user(): response client.post( /users/, json{username: test, email: testexample.com} ) assert response.status_code 200 assert response.json()[username] test def test_read_user(): # 先创建用户 create_response client.post( /users/, json{username: test, email: testexample.com} ) user_id 1 # 假设这是第一个用户 # 测试读取 response client.get(f/users/{user_id}) assert response.status_code 200 assert response.json()[username] test def test_update_user(): # 先创建用户 client.post( /users/, json{username: test, email: testexample.com} ) user_id 1 # 测试更新 update_data {username: updated, email: updatedexample.com} response client.put(f/users/{user_id}, jsonupdate_data) assert response.status_code 200 assert response.json()[username] updated def test_delete_user(): # 先创建用户 client.post( /users/, json{username: test, email: testexample.com} ) user_id 1 # 测试删除 response client.delete(f/users/{user_id}) assert response.status_code 200 assert response.json()[message] User deleted # 验证用户已被删除 response client.get(f/users/{user_id}) assert response.status_code 4044. 总结与评价4.1 模型表现总结通过以上多个案例的测试Phi-3-mini-4k-instruct-gguf在Python代码生成方面表现出以下特点代码质量高生成的代码结构清晰符合PEP8规范包含适当的类型注解和文档字符串功能完整能够理解复杂需求生成功能完整的代码实现测试覆盖全面自动生成的单元测试覆盖了正常情况和异常情况风格一致代码风格保持一致易于阅读和维护最佳实践遵循Python社区的最佳实践如使用类型注解、适当的异常处理等4.2 适用场景建议该模型特别适合以下场景快速原型开发快速生成可运行的基础代码框架学习辅助为编程学习者提供规范的代码示例测试用例生成自动创建高质量的单元测试代码审查提供符合规范的代码参考教学演示展示标准化的代码编写方式4.3 使用建议明确需求在提问时尽可能清晰地描述需求包括输入输出、边界条件等逐步细化对于复杂功能可以分步骤请求先获取基础实现再请求增强功能人工审查虽然生成的代码质量高但仍建议进行人工审查和测试持续迭代根据生成的代码结果可以进一步提出优化请求获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关文章:

Phi-3-mini-4k-instruct-gguf惊艳效果:生成符合PEP8规范的Python代码+单元测试

Phi-3-mini-4k-instruct-gguf惊艳效果:生成符合PEP8规范的Python代码单元测试 1. 模型简介与部署 Phi-3-Mini-4K-Instruct是一个38亿参数的轻量级开源模型,属于Phi-3系列中的Mini版本。该模型经过专门训练,能够生成高质量的代码内容&#x…...

**基于Geolocation API的精准位置服务开发实战:从原理到Vue3+JavaScript

基于Geolocation API的精准位置服务开发实战:从原理到Vue3JavaScript落地应用 在现代Web应用中,用户地理位置信息已成为提升体验的核心要素之一。无论是地图导航、本地化推荐,还是安全验证机制,Geolocation API 都是前端获取用户实…...

BOSS直接自动点击未读消息并发送求简历请求

最新版本代码 26-04-23 修复没有对话无法发送求简历按钮(() > {/******************************************************************* 可配置参数******************************************************************/const CONFIG {countdownSeconds: 3,openConfirmDe…...

13款降AI率工具实测:论文查重高怎么改,降重鸟稳居榜首

上周,我室友三天三夜敲完综述,维普AI率飙到46%,他抱头大喊“我又没抄”,我替他摸索工具,顺便吐槽:写得像人还被说像机器。 定向适配各大检测:平台选得对,降幅更稳 降重鸟地址&…...

别再死记公式了!用‘矩形面积’法秒懂均匀分布概率计算(附Python验证)

用几何直觉破解均匀分布:矩形面积法实战指南 想象一下,你经营着一家小花店,每天能卖出10到40束鲜花。某天有位老顾客要预订15到30束花,你想快速估算满足这个需求的概率——这时你需要的不是复杂的积分公式,而是一把直尺…...

Python 微信扫码活动系统实战

系统功能 1. 微信扫码入口 - 活动二维码:支持生成门店活动二维码,顾客扫码即可进入活动页面 - 活动识别:支持识别不同门店、不同活动场景 - 活动状态控制:支持活动启用、停用、过期控制 - 首次进入校验:校验用户是否首次参与、是否已领取、是否重复参与 2. 红包领取模…...

Docker 27容器化低代码平台上线后CPU突增400%?资深SRE带你逆向追踪runtime shim层的5个隐式依赖陷阱

第一章:Docker 27容器化低代码平台上线后CPU突增400%的现场还原凌晨两点,监控告警触发:核心服务容器 CPU 使用率从平均12%飙升至峰值520%,持续超阈值达18分钟。运维团队紧急接入生产环境,通过 docker stats 实时观察发…...

私有Registry沦陷实录:27个未授权镜像推送事件复盘,附GCP/AWS/EKS三平台RBAC最小权限模板

第一章:私有Registry沦陷事件全景图谱私有Docker Registry作为企业容器镜像分发的核心枢纽,其安全性直接关系到整个CI/CD链路与生产环境的可信基线。近年来,多起因配置疏漏、凭证泄露或未授权访问导致的Registry沦陷事件频发,攻击…...

Web 品质样式表:构建高效、美观的网页设计指南

Web 品质样式表:构建高效、美观的网页设计指南 引言 在互联网时代,网页设计已经成为展示企业品牌形象、提供优质用户体验的重要途径。而Web品质样式表(CSS)作为网页设计中的核心组成部分,对于提升网页的整体质量和用户体验至关重要。本文将深入探讨Web品质样式表的重要性…...

别只看主频!全志T3(A40I)和T5(T507)在智能车载与工业HMI场景下的真实表现差异

全志T3与T5芯片在智能车载与工业HMI中的实战选型指南 当工程师面对智能车载中控和工业人机界面(HMI)这两类截然不同的应用场景时,芯片选型往往成为决定产品成败的关键。全志T3(A40I)和T5(T507)作为两款定位不同的处理器,在实际应用中展现出的差异远比参数…...

【2026年版|建议收藏】Agent开发学习路线(从入门到进阶),小白程序员也能轻松上手大模型

本文专为想要转行、求职Agent开发岗位的程序员(含小白入门者)打造,整理了一套由浅入深、贴合2026年大模型技术趋势的Agent开发技术学习路线。内容涵盖大模型应用基础、提示词工程、大模型检索增强生成(RAG)、Agent智能…...

【收藏级】2026年大模型零基础入门到精通学习路线(小白/程序员专属)

在2026年的人工智能领域,大模型早已褪去“高端炫技”的光环,从云端军备竞赛转向端侧普惠,成为赋能各行业数字化转型的核心工具,更是程序员职场进阶、小白入门AI的必备技能。无论是对AI充满好奇的编程新手,还是希望深耕…...

打卡信奥刷题(3154)用C++实现信奥题 P7725 珍珠帝王蟹(Crab King)

P7725 珍珠帝王蟹(Crab King) 题目背景 在一次航程中,你偶然发现了被一片礁石环绕的帝王蟹,被月岛能量侵蚀的它又与月光有着怎样的联系呢?似乎只有击败它才能见分晓。 题目描述 帝王蟹可以通过镶嵌宝石触发战斗&#x…...

告别纯理论!用Proteus+CD4029+4511亲手搭一个可正/倒计数的数码管显示系统

从零搭建可交互数码管计数器:Proteus仿真全流程解析 在电子设计的学习过程中,理论知识的掌握固然重要,但真正让概念"活起来"的往往是亲手搭建电路的实践过程。本文将带您使用Proteus仿真软件,配合CD4029计数器和4511译码…...

如何用 dedao-dl 实现得到课程永久保存:告别知识过期的终极指南

如何用 dedao-dl 实现得到课程永久保存:告别知识过期的终极指南 【免费下载链接】dedao-dl 得到 APP 课程下载工具,可在终端查看文章内容,可生成 PDF,音频文件,markdown 文稿,可下载电子书。可结合 opencla…...

吊顶里的那根龙骨,后来怎么样了

决定用轻钢龙骨做吊顶,是设计师在图纸上画了几条线,轻描淡写说了一句。我当时没太在意,心想不就是吊个顶么。直到后来,我自己跑建材市场,站在一堆银晃晃的金属条面前,才觉得这事儿好像没那么简单。工人师傅…...

Hugging Face开源AI生态:从入门到实战指南

1. 开源AI生态入门指南Hugging Face平台已经成为当代AI开发者不可或缺的工具箱。这个最初专注于自然语言处理的开源社区,如今已发展成为涵盖计算机视觉、语音识别、多模态模型的综合性AI资源中心。我第一次接触Hugging Face是在2019年处理一个文本分类项目时&#x…...

别再只会按AutoSet了!手把手教你玩转泰克MSO2000B示波器的触发与采样设置

别再只会按AutoSet了!手把手教你玩转泰克MSO2000B示波器的触发与采样设置 当示波器屏幕上突然出现一个转瞬即逝的毛刺信号,或是测量一个非周期性的复杂波形时,按下AutoSet键往往只能得到一片混乱的显示。这不是示波器的故障,而是自…...

【限时开源】C++26合约成本审计模板(含Bazel规则、Clang插件、Gnuplot性能热力图脚本):仅开放72小时,专供高实时性系统团队

第一章:C26合约编程实战教程C26 将正式引入标准化的合约(Contracts)机制,作为语言级的运行时契约验证设施,用于表达函数前置条件、后置条件与断言不变量。与 C20 的实验性合约提案不同,C26 合约设计更强调可…...

【完整源码+数据集+部署教程】苹果品种分割系统源码&数据集分享 [yolov8-seg-C2f-RFCAConv&yolov8-seg-C2f-DCNV3等50+全套改进创新点发刊_一键训练教程_W

背景意义 随着全球人口的不断增长和生活水平的提高,水果作为人们日常饮食中不可或缺的部分,其生产和消费需求日益增加。苹果作为一种广受欢迎的水果,因其丰富的营养价值和多样的品种而备受青睐。苹果的品种繁多,不同品种的苹果在外…...

【限时技术白皮书】:Docker 27低代码集成性能压测报告(23类低代码引擎+8大PaaS平台横向对比,仅开放72小时)

第一章:Docker 27低代码平台容器集成全景概览Docker 27 是面向企业级低代码开发平台的轻量级容器运行时增强版本,专为支持可视化编排、动态组件热插拔与多租户隔离场景而优化。它并非 Docker Desktop 或 Docker Engine 的简单补丁,而是基于 c…...

COMSOL声学超材料实证研究

COMSOL 薄膜型声学超材料,薄膜质量块耦合吸声结构,sci完整复现。【COMSOL搞声学超材料的同学看过来】今天咱们聊聊薄膜型声学超材料建模那些事。这玩意儿在降噪领域挺火,特别是那个薄膜-质量块耦合结构,SCI论文里动不动就秀出90%以…...

电脑小白自救指南:当你的Win10被2345、小鸟壁纸攻占后,除了重装还能做什么?

电脑小白自救指南:当Win10被2345全家桶攻占后的终极清理方案 看着电脑右下角不断弹出的游戏广告、浏览器首页被篡改成陌生网址、任务管理器里挤满陌生进程——这可能是每个Windows用户都经历过的噩梦。尤其当2345系列软件、小鸟壁纸这类"业界毒瘤"侵入系统…...

如何5分钟搭建个人番茄小说图书馆:终极离线阅读解决方案

如何5分钟搭建个人番茄小说图书馆:终极离线阅读解决方案 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 你是否遇到过这种情况?在地铁上网络信号断断续…...

谷歌 AI 会议记录功能大拓展:Gemini 支持线下及 Zoom、Teams 会议摘要生成

谷歌 AI 会议记录功能拓展至多场景据 9to5Google 报道,谷歌的 AI 会议记录功能不再局限于 Google Meets,如今,Gemini 能为线下会议以及在 Zoom 和 Microsoft Teams 上举行的会议生成摘要和文字记录。此前线下会议支持功能仅面向内测用户且仅在…...

6分27秒!宁德时代这一拳,直接打在了比亚迪的脸上,燃油车的时代真要终结了?

月21日晚,宁德时代的“超级科技日”发布会,本来以为只是常规的秀肌肉,结果曾毓群(宁德时代董事长)直接往牌桌上扔了一对“王炸”——第三代神行超充电池,10%充到98%,只要6分27秒! 你…...

别再只懂@NotNull了!手把手教你用Hibernate Validator玩转Java Bean校验,从自定义注解到集合校验

突破基础校验:Hibernate Validator高级实战指南 在Java后端开发中,数据校验是保障系统健壮性的第一道防线。虽然NotNull、Size等基础注解能解决80%的简单场景,但当面对复杂业务规则、跨字段逻辑或集合校验时,开发者往往陷入重复造…...

深度学习 —— 学习率衰减策略

目录 学习率策略 1. 先说结论: 2. 图例:各种学习率下的图 3. 学习率的方式 4. 公式: 4. 神经网络的训练流程 5. 完整代码示例 学习率策略 模型调优的时候可能才会用 1. 先说结论: ① 学习率小, 梯度下降慢 …...

百度网盘直链解析工具:告别龟速下载,重获下载自由

百度网盘直链解析工具:告别龟速下载,重获下载自由 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否曾面对百度网盘几十KB的下载速度感到绝望&…...

深度学习 —— 正则化批量归一化BN

正则化概念是什么? 机器学习/深度学习中,防止模型过拟合/提高模型泛化能力的方法L1与L2正则化L1和L2正则化通过在损失函数上添加惩罚项来实现L1正则化在工程中,通常引入软阈值操作,权重小于某个值时,强制为0深度学习中…...