feat: +skill meta data decorator

This commit is contained in:
莘权 马 2023-08-20 19:23:05 +08:00
parent bff71391d3
commit 88da7aa761
4 changed files with 37 additions and 0 deletions

View file

@ -0,0 +1,25 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Time : 2023/8/20
@Author : mashenquan
@File : skill_metadata.py
@Desc : Defines metadata for the `skill`.
Depending on the context and specific circumstances, skills may have different effects.
For example:
Proprietor: "Skill of the proprietor entity."所有者的技能
Holder: "Skill of the holder entity."持有者的技能
Possessor: "Skill of the possessor entity."拥有者的技能
Controller: "Skill of the controller entity."控制者的技能
Owner: "Skill of the owner entity."所有者的技能
"""
def skill_metadata(name, description, requisite):
def decorator(func):
func.skill_name = name
func.skill_description = description
func.skill_requisite = requisite
return func
return decorator

View file

@ -8,10 +8,14 @@
"""
import os
from metagpt.learn.skill_metadata import skill_metadata
from metagpt.tools.openai_text_to_embedding import oas3_openai_text_to_embedding
from metagpt.utils.common import initialize_environment
@skill_metadata(name="Text to Embedding",
description="Convert the text into embeddings.",
requisite="`OPENAI_API_KEY`")
def text_to_embedding(text, model="text-embedding-ada-002", openai_api_key=""):
"""Text to embedding

View file

@ -8,11 +8,15 @@
"""
import os
from metagpt.learn.skill_metadata import skill_metadata
from metagpt.tools.metagpt_text_to_image import oas3_metagpt_text_to_image
from metagpt.tools.openai_text_to_image import oas3_openai_text_to_image
from metagpt.utils.common import initialize_environment
@skill_metadata(name="Text to image",
description="Create a drawing based on the text.",
requisite="`OPENAI_API_KEY` or `METAGPT_TEXT_TO_IMAGE_MODEL`")
def text_to_image(text, size_type: str = "512x512", openai_api_key="", model_url=""):
"""Text to image

View file

@ -8,10 +8,14 @@
"""
import os
from metagpt.learn.skill_metadata import skill_metadata
from metagpt.tools.azure_tts import oas3_azsure_tts
from metagpt.utils.common import initialize_environment
@skill_metadata(name="Text to speech",
description="Text-to-speech",
requisite="`AZURE_TTS_SUBSCRIPTION_KEY` and `AZURE_TTS_REGION`")
def text_to_speech(text, lang="zh-CN", voice="zh-CN-XiaomoNeural", style="affectionate", role="Girl",
subscription_key="", region=""):
"""Text to speech