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

AI编程从零起步:手把手教你开发自己的第一个Skill

AI编程从零起步手把手教你开发自己的第一个SkillAI编程入门开发自己的Skill什么是SkillSkill技能是AI助手的扩展功能模块让AI能够执行特定任务——比如查询天气、发送邮件、计算数学题、调用外部API等。开发自己的Skill就是教会AI一项新能力。快速入门5步开发一个Skill第1步确定Skill功能从一个简单需求开始。例如“查股票价格”Skill——用户输入股票代码返回实时价格。第2步设计输入输出输入股票代码如 AAPL, 600036 输出股票名称、当前价格、涨跌幅第3步编写核心代码Python示例# stock_skill.pyimportrequestsimportjsondefget_stock_price(symbol): 获取股票价格使用免费API示例 # 使用Alpha Vantage免费API需申请keyapi_keyYOUR_API_KEYurlfhttps://www.alphavantage.co/queryparams{function:GLOBAL_QUOTE,symbol:symbol,apikey:api_key}responserequests.get(url,paramsparams)dataresponse.json()quotedata.get(Global Quote,{})ifquote:return{symbol:symbol,price:quote.get(05. price),change:quote.get(09. change),change_percent:quote.get(10. change percent)}returnNone# Skill的入口函数defexecute(input_data):symbolinput_data.get(symbol)resultget_stock_price(symbol)return{success:resultisnotNone,data:result,message:f{symbol}当前价格:{result[price]}ifresultelse查询失败}第4步创建Skill配置文件{name:stock_price_skill,version:1.0.0,description:查询股票实时价格,author:Your Name,inputs:[{name:symbol,type:string,description:股票代码如 AAPL, 600036,required:true}],outputs:{success:boolean,data:object,message:string}}第5步注册并测试# test_skill.pyfromstock_skillimportexecute# 模拟用户输入user_input{symbol:AAPL}resultexecute(user_input)print(result[message])# 输出AAPL 当前价格: 175.50更实用的Skill模板1. 天气查询Skill# weather_skill.pyimportrequestsdefget_weather(city,api_key):urlfhttp://api.openweathermap.org/data/2.5/weatherparams{q:city,appid:api_key,units:metric}resprequests.get(url,paramsparams)dataresp.json()return{city:city,temperature:data[main][temp],humidity:data[main][humidity],description:data[weather][0][description]}defexecute(input_data):cityinput_data.get(city)api_keyinput_data.get(api_key)# 实际应配置在环境变量returnget_weather(city,api_key)2. 文本处理Skill# text_summary_skill.pyfromtransformersimportpipeline# 加载模型首次运行会下载summarizerpipeline(summarization,modelfacebook/bart-large-cnn)defexecute(input_data):textinput_data.get(text)max_lengthinput_data.get(max_length,130)summarysummarizer(text,max_lengthmax_length,min_length30)return{original_length:len(text),summary:summary[0][summary_text],summary_length:len(summary[0][summary_text])}Skill开发最佳实践1. 错误处理要完整defexecute(input_data):try:# 验证输入ifnotinput_data.get(symbol):return{success:False,error:缺少symbol参数}# 执行核心逻辑resultfetch_data(input_data[symbol])return{success:True,data:result}exceptrequests.Timeout:return{success:False,error:API请求超时}exceptExceptionase:return{success:False,error:str(e)}2. 配置与代码分离importosfromdotenvimportload_dotenv load_dotenv()API_KEYos.getenv(STOCK_API_KEY)CACHE_TTLint(os.getenv(CACHE_TTL,300))3. 添加缓存提升性能fromfunctoolsimportlru_cacheimporttimelru_cache(maxsize100)defget_cached_price(symbol,timestamp):# timestamp用于控制缓存时间returnfetch_real_price(symbol)defexecute(input_data):symbolinput_data[symbol]cache_keyint(time.time()/300)# 5分钟缓存returnget_cached_price(symbol,cache_key)将Skill集成到AI助手方式1函数调用Function Calling# OpenAI格式的Skill声明skill_schema{name:get_stock_price,description:获取股票实时价格,parameters:{type:object,properties:{symbol:{type:string,description:股票代码如 AAPL}},required:[symbol]}}# AI调用你的Skillresponseopenai.ChatCompletion.create(modelgpt-4,messages[{role:user,content:苹果股价多少}],functions[skill_schema])方式2本地Skill框架# skill_loader.pyimportimportlibimportjsonclassSkillManager:def__init__(self):self.skills{}defregister_skill(self,name,module_path):moduleimportlib.import_module(module_path)self.skills[name]module.executedefexecute(self,skill_name,input_data):ifskill_namenotinself.skills:return{error:fSkill{skill_name}not found}returnself.skills[skill_name](input_data)# 使用managerSkillManager()manager.register_skill(stock,stock_skill)resultmanager.execute(stock,{symbol:AAPL})实战练习开发一个计算器Skill# calculator_skill.pyimportredefexecute(input_data): 支持基础运算和表达式 输入: {expression: 2 3 * 4} expressioninput_data.get(expression,)# 安全检查只允许数字和运算符ifnotre.match(r^[\d\s\\-\*\/\(\)\.]$,expression):return{success:False,error:表达式包含非法字符}try:# 安全执行注意实际生产应使用ast.literal_eval或math库resulteval(expression)return{success:True,expression:expression,result:result}exceptExceptionase:return{success:False,error:f计算错误:{str(e)}}# 测试if__name____main__:print(execute({expression:(10 5) * 2}))# 输出: {success: True, expression: (10 5) * 2, result: 30}下一步学习路径熟悉API调用→ 学习requests库、RESTful API学习异步处理→ asyncio、aiohttp提升性能添加数据库→ SQLite/PostgreSQL存储数据部署为Web服务→ FastAPI/Flask包装成微服务学习LangChain→ 构建复杂AI Agent Skill链推荐资源免费API: OpenWeatherMap、Alpha Vantage、NewsAPI学习平台: Fast.ai、Hugging Face教程工具: VS Code GitHub Copilot、Postman测试API从最简单的功能开始逐步迭代。一个好Skill 解决具体问题 稳定可靠 易于集成。

相关文章:

AI编程从零起步:手把手教你开发自己的第一个Skill

AI编程从零起步:手把手教你开发自己的第一个Skill AI编程入门:开发自己的Skill 什么是Skill? Skill(技能)是AI助手的扩展功能模块,让AI能够执行特定任务——比如查询天气、发送邮件、计算数学题、调用外部A…...

air780e stm32标准库发送英文短信,如何实现?(附相关源码,仅供参考)

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属…...

题解:AcWing 1072 树的最长路径

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大家订阅我的专栏:算法…...

TorchTitan分布式训练终极审计指南:资源使用与能效深度分析

TorchTitan分布式训练终极审计指南:资源使用与能效深度分析 【免费下载链接】torchtitan A PyTorch native platform for training generative AI models 项目地址: https://gitcode.com/GitHub_Trending/to/torchtitan TorchTitan作为PyTorch原生的生成式AI…...

InstallWithOptions与工作配置文件:解决权限限制的完整方案

InstallWithOptions与工作配置文件:解决权限限制的完整方案 【免费下载链接】InstallWithOptions Simple-ish app using Shizuku to install APKs on-device with advanced options 项目地址: https://gitcode.com/gh_mirrors/in/InstallWithOptions Install…...

终极Firefox优化指南:使用Betterfox提升隐私安全与浏览体验

终极Firefox优化指南:使用Betterfox提升隐私安全与浏览体验 【免费下载链接】Betterfox Firefox user.js for optimal privacy and security. Your favorite browser, but better. 项目地址: https://gitcode.com/GitHub_Trending/be/Betterfox Betterfox是一…...

如何在Sigma-Web-Dev-Course中集成TensorFlow.js构建浏览器端机器学习模型

如何在Sigma-Web-Dev-Course中集成TensorFlow.js构建浏览器端机器学习模型 【免费下载链接】Sigma-Web-Dev-Course Source Code for Sigma Web Development Course 项目地址: https://gitcode.com/GitHub_Trending/si/Sigma-Web-Dev-Course Sigma-Web-Dev-Course是一个全…...

从一次抓包看懂TLS握手:Wireshark拆解Client Hello、Server Hello与密钥交换全过程

从一次抓包看懂TLS握手:Wireshark拆解Client Hello、Server Hello与密钥交换全过程 当你盯着Wireshark里那些密密麻麻的十六进制数据包时,是否曾好奇过TLS握手过程中那些看似随机的数字和字段究竟在传递什么信息?作为互联网安全的基石&#x…...

终极指南:UnleashedRecomp虚拟文件系统如何实现跨平台资源管理

终极指南:UnleashedRecomp虚拟文件系统如何实现跨平台资源管理 【免费下载链接】UnleashedRecomp An unofficial PC port of the Xbox 360 version of Sonic Unleashed created through the process of static recompilation. 项目地址: https://gitcode.com/GitH…...

别再只改分压电阻了!深入拆解LLC电源(以CM6901为例)大范围调压的真正难点

深入解析LLC谐振电源调压技术:从CM6901实战看设计难点与解决方案 1. 理解LLC谐振变换器的核心特性 LLC谐振变换器作为第三代开关电源的典型代表,其工作机理与传统PWM变换器存在本质差异。许多工程师初次接触LLC设计时,常会带入反激或正激变换…...

JavaScript中Number构造函数对各种类型的转换规则

Number构造函数用于类型转换,空字符串转0,布尔值true/false转1/0,null转0、undefined转NaN,对象先调用toString再解析,Symbol和BigInt抛TypeError。Number构造函数在JavaScript中用于将其他类型值转换为数字&#xff0…...

你的AMOS模型总跑不好?可能是这3个‘坑’没避开(附SPSS数据预处理检查清单)

AMOS模型优化实战:避开三大陷阱的完整指南 每次点击"Calculate Estimates"按钮时,心跳加速的感觉是不是很熟悉?屏幕上一连串红色警告和离谱的适配度指标让多少研究者彻夜难眠。AMOS作为结构方程模型(SEM)分析的利器,用好…...

golang如何编写SSL证书到期检测工具_golang SSL证书到期检测工具编写总结

用 tls.Dial 连接并读取远程证书需设 InsecureSkipVerifytrue,从 PeerCertificates 取 leaf 证书,解析域名端口(缺省为443),用 time.Now().UTC() 比较 NotBefore/NotAfter,并校验域名匹配;需分类…...

JavaScript中rest参数(...args)取代arguments的优势

Rest参数(...args)比arguments更优,因它是真数组、支持所有数组方法、可解构展开、位置明确、兼容箭头函数、能与默认值共存、利于静态分析。Rest参数(...args)比传统 arguments 对象更现代、更灵活,核心优…...

7个实用技巧!AWS Amplify-js前端错误监控最佳实践:实时报警与精准分析

7个实用技巧!AWS Amplify-js前端错误监控最佳实践:实时报警与精准分析 【免费下载链接】amplify-js A declarative JavaScript library for application development using cloud services. 项目地址: https://gitcode.com/gh_mirrors/am/amplify-js …...

mysql如何禁止用户创建新表_撤销CREATE与ALTER表权限

撤销用户CREATE和ALTER权限后仍能建表,是因为权限叠加生效、GRANT OPTION未撤、角色继承或CREATE TEMPORARY TABLES权限遗漏;必须全面检查并同步撤销DROP、INDEX等关联权限。撤销用户 CREATE 和 ALTER 权限后仍能建表?检查 GRANT OPTION 和角…...

终极Buefy缓存策略指南:提升Vue.js应用性能的完整方案

终极Buefy缓存策略指南:提升Vue.js应用性能的完整方案 【免费下载链接】buefy Lightweight UI components for Vue.js based on Bulma 项目地址: https://gitcode.com/gh_mirrors/bu/buefy Buefy作为基于Bulma的轻量级Vue.js UI组件库,以其简洁的…...

用Matlab nrWavegen工具箱手把手配置5G SSB:从NCRBSSB到KSSB的频点计算避坑指南

用Matlab nrWavegen工具箱手把手配置5G SSB:从NCRBSSB到KSSB的频点计算避坑指南 当第一次打开Matlab的nrWavegen工具箱,面对SSB配置参数时,很多工程师都会感到一阵迷茫。BlockPattern、NCRBSSB、KSSB这些参数到底该如何设置?为什么…...

FlashDB磨损平衡机制揭秘:如何延长Flash寿命的终极指南

FlashDB磨损平衡机制揭秘:如何延长Flash寿命的终极指南 【免费下载链接】FlashDB An ultra-lightweight database that supports key-value and time series data | 一款支持 KV 数据和时序数据的超轻量级数据库 项目地址: https://gitcode.com/gh_mirrors/fl/Fla…...

彻底告别网盘限速:八大平台直链下载助手完整指南

彻底告别网盘限速:八大平台直链下载助手完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 …...

FlashDB移植教程:轻松适配STM32、ESP32等主流MCU

FlashDB移植教程:轻松适配STM32、ESP32等主流MCU 【免费下载链接】FlashDB An ultra-lightweight database that supports key-value and time series data | 一款支持 KV 数据和时序数据的超轻量级数据库 项目地址: https://gitcode.com/gh_mirrors/fl/FlashDB …...

LCM与LLM对比分析:为什么句子表示空间是语言建模的未来

LCM与LLM对比分析:为什么句子表示空间是语言建模的未来 【免费下载链接】large_concept_model Large Concept Models: Language modeling in a sentence representation space 项目地址: https://gitcode.com/gh_mirrors/la/large_concept_model Large Conce…...

NelmioApiDocBundle集成指南:与JMS Serializer、FOSRestBundle完美协作

NelmioApiDocBundle集成指南:与JMS Serializer、FOSRestBundle完美协作 【免费下载链接】NelmioApiDocBundle Generates documentation for your REST API from attributes 项目地址: https://gitcode.com/gh_mirrors/ne/NelmioApiDocBundle NelmioApiDocBun…...

python devspace

# 聊聊Python DevSpace:一个让开发环境更清爽的工具 最近在项目里折腾环境配置,又遇到了老问题。不同的项目依赖不同的Python版本,不同的库版本,有时候甚至需要不同的系统环境。虚拟环境能解决一部分问题,但涉及到系统…...

Perfetto上下文切换分析终极指南:快速定位进程调度开销问题

Perfetto上下文切换分析终极指南:快速定位进程调度开销问题 【免费下载链接】perfetto Production-grade client-side tracing, profiling, and analysis for complex software systems. 项目地址: https://gitcode.com/GitHub_Trending/pe/perfetto Perfett…...

栈与队列的巧妙运用:Complete-DSA-Preparation中的经典算法模式

栈与队列的巧妙运用:Complete-DSA-Preparation中的经典算法模式 【免费下载链接】Complete-DSA-Preparation This is A complete DSA preparation Course. A DSA self-paced course for ultimate Interview and Placement Preparation 项目地址: https://gitcode.…...

xalpha 核心组件详解:基金信息获取与净值管理

xalpha 核心组件详解:基金信息获取与净值管理 【免费下载链接】xalpha 基金投资管理回测引擎 项目地址: https://gitcode.com/gh_mirrors/xa/xalpha xalpha 是一款强大的基金投资管理回测引擎,能够帮助投资者轻松获取基金信息、管理净值数据并进行…...

FinMind基本面分析完全指南:财务报表、月营收数据的正确用法

FinMind基本面分析完全指南:财务报表、月营收数据的正确用法 【免费下载链接】FinMind Open Data, more than 50 financial data. 提供超過 50 個金融資料(台股為主),每天更新 https://finmind.github.io/ 项目地址: https://gitcode.com/gh_mirrors/f…...

May协程库与Tokio对比:栈式协程与Future异步模型的差异

May协程库与Tokio对比:栈式协程与Future异步模型的差异 【免费下载链接】may rust stackful coroutine library 项目地址: https://gitcode.com/gh_mirrors/ma/may May是一个高性能的栈式协程库,可帮助开发者轻松构建和维护大规模并发程序&#x…...

Algebird入门指南:如何在Scala中轻松实现抽象代数

Algebird入门指南:如何在Scala中轻松实现抽象代数 【免费下载链接】algebird Abstract Algebra for Scala 项目地址: https://gitcode.com/gh_mirrors/al/algebird Algebird是一个为Scala设计的抽象代数库,专为构建高效的聚合系统而开发。它提供了…...