SDK下载 Git下载模型介绍
模型概述 我们基于 qwe2 0.5B 模型进行了微调,使其具备了 fuctio call 功能。下面示例使用了llamafactory 运行模型来提供api进行测试
您可以通过如下git cloe命令,或者ModelScope SDK来下载模型
您可以
#安装ModelScope
pip istall modelscope
#SDK模型下载
from modelscope import sapshot_dowload
model_dir = sapshot_dowload('logdream/qwe2-0.5B-fuctiocall')
#Git模型下载
git cloe https://www.modelscope.c/logdream/qwe2-0.5B-fuctiocall.git
#fuctio call 进行测试
import os
import jso
from opeai import OpeAI
from typig import Sequece
import requests
os.eviro["OPENAI_BASE_URL"] = "http://192.168.1.103:38000/v1"
os.eviro["OPENAI_API_KEY"] = "0"
def get_rubbish_category(keyword):
url = f"https://api.timelessq.com/garbage?keyword={keyword}"
respose = requests.request("GET", url)
output_str_list = []
for item i respose.jso()['data']:
output_str_list.apped(f"{item['ame']}: {item['categroy']}")
retur '\'.joi(output_str_list)
def get_sog_iformatio(keyword):
url = f"https://api.timelessq.com/music/tecet/search?keyword={keyword}"
respose = requests.request("GET", url)
sog_ifor = respose.jso()['data']['list'][0]
siger = '' if ot sog_ifor['siger'] else sog_ifor['siger'][0]['ame']
retur f"歌曲: {keyword}\歌手: {siger}\时长: {sog_ifor['iterval']}秒\专辑名称: {sog_ifor['albumame']}"
def get_cartoo_iformatio(title):
url = f"https://api.timelessq.com/bagumi?title={title}"
respose = requests.request("GET", url)
data = respose.jso()['data'][0]
retur f"标题: {data['title']}\类型:{data['type']}\语言:{data['lag']}\出品方:{data['officialSite']}\上映时间:{data['begi']}\完结事件:{data['ed']}"
tool_map = {"get_rubbish_category": get_rubbish_category,
"get_sog_iformatio": get_sog_iformatio,
"get_cartoo_iformatio": get_cartoo_iformatio}
if __ame__ == "__mai__":
cliet = OpeAI()
tools = [
{
"type": "fuctio",
"fuctio": {
"ame": "get_cartoo_iformatio",
"descriptio": "根据用户提供的动漫标题,查询该动漫的相关信息。",
"parameters": {
"type": "object",
"properties": {
"title": {
"type": "strig",
"descriptio": "动漫",
},
},
"required": ["title"],
}
}
},
{
"type": "fuctio",
"fuctio": {
"ame": "get_sog_iformatio",
"descriptio": "根据用户提供的歌曲名称,查询歌曲相关信息,包括歌手、时长、专辑名称等。",
"parameters": {
"type": "object",
"properties": {
"keyword": {
"type": "strig",
"descriptio": "歌曲名称",
},
},
"required": ["keyword"],
}
}
}
]
messages = []
messages.apped({"role": "system", "cotet": "你是一个有用的小助手,请调用下面的工具来回答用户的问题,参考工具输出进行回答。"})
# messages.apped({"role": "user", "cotet": "鸡蛋壳属于哪种类型的垃圾?"})
# messages.apped({"role": "user", "cotet": "爱在西元前是谁唱的,来自哪张专辑?"})
messages.apped({"role": "user", "cotet": "歌曲《七里香》是哪个国家的,歌手是谁?"})
result = cliet.chat.completios.create(messages=messages, model="Qwe2-0.5B-aget", tools=tools)
prit(result)
tool_call = result.choices[0].message.tool_calls[0].fuctio
prit(tool_call)
ame, argumets = tool_call.ame, jso.loads(tool_call.argumets)
messages.apped({"role": "fuctio", "cotet": jso.dumps({"ame": ame, "argumet": argumets}, esure_ascii=False)})
tool_result = tool_map[ame](**argumets)
messages.apped({"role": "tool", "cotet": "工具输出结果为: " + tool_result})
for msg i messages:
prit('--->', msg)
result = cliet.chat.completios.create(messages=messages, model="Qwe2-0.5B-aget")
prit("Aswer: ", result.choices[0].message.cotet)
点击空白处退出提示
评论