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