python+openai兼容第三方api千问等实现通用性skills技能自主创建与调用示例代码
代码语言:python
所属分类:其他
代码描述:python+openai兼容第三方api千问等实现通用性skills技能自主创建与调用示例代码,只要这个模型的代码能力很强,就可以使用,skills的核心就是ai大模型的编程能力,让每个agent都是一个专业的资深程序员,通过实时从skills中学习代码技能实时编写代码解决问题。兼容所有的openai兼容大模型api
代码标签: python openai 兼容 第三方 api 千问 通用性 skills 技能 自主 创建 调
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
"""
Qwen Skills Agent - 双模型自主技能系统
- 主模型 (qwen-max): 意图分析、技能选择、对话
- 代码模型 (qwen3-coder-flash): 技能代码生成
"""
import os
import json
import re
from typing import Dict, Any, Optional
from dataclasses import dataclass, field
from datetime import datetime
from openai import OpenAI
# ==================== 技能数据结构 ====================
@dataclass
class Skill:
"""技能定义"""
name: str # 技能名称
brief: str # 简短描述(用于技能选择阶段)
description: str # 详细描述
code: str # Python函数代码
parameters: list # 参数列表
created_at: str = field(default_factory=lambda: datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
usage_count: int = 0
# ==================== 技能存储管理 ====================
class SkillStore:
"""技能持久化存储"""
def __init__(self, filepath: str = "skills_db.json"):
self.filepath = filepath
self.skills: Dict[str, Skill] = {}
self._load()
def _load(self):
"""从文件加载技能"""
if os.path.exists(self.filepath):
try:
with open(self.filepath, "r", encoding="utf-8") as f:
data = json.load(f)
for name, info in data.items():
self.skills[name] = Skill(**info)
print(f"📂 已加载 {len(self.skills)} 个技能")
except Exception as e:
print(f"⚠️ 加载技能库失败: {e}")
def _save(self):
"""保存技能到文件"""
data = {}
for name, skill in self.skills.items():
data[name] = {
"name": skill.name,
"brief": skill.brief,
"description": skill.description,
"code": skill.code,
"parameters": skill.parameters,
"created_at": skill.created_at,
"usage_count": skill.usage_count
}
with open(self.filepath, "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
def add(self, skill: Skill) -> bool:
"""添加技能"""
self.skills[skill.name] = skill
self._save()
return True
def get(self, name: str) -> Optional[Skill]:
"""获取技能"""
return self.skills.get(name)
def delete(self, name: str) -> .........完整代码请登录后点击上方下载按钮下载查看















网友评论0