大模型的应用与智能体

一、前言

在开始之前你需要准备什么:

1、环境:openai

2、某个大模型的api

3、python编译器

好了,让我们来感受科技的乐趣吧,哈哈哈

二、大模型的使用

首先我们要获取一个大模型的api,这里以moonshot为例,这个大模型处理长文本非常厉害(其实是它免费送15块,哈哈哈)。首先登录moonshot,

点击开发平台,

进入使用指南,获取API密钥,

进去API Key管理,

新建一个并复制即可。

怎么使用这个API呢,直接附上代码,需要替换为你的api_key。

from openai import OpenAI
 
client = OpenAI(
    api_key = "yourapi",
    base_url = "https://api.moonshot.cn/v1",
)
 
history = [
    {"role": "system", "content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。"}
]
 
def chat(query, history):
    history += [{
        "role": "user",
        "content": query
    }]
    completion = client.chat.completions.create(
        model="moonshot-v1-32k",
        messages=history,
        temperature=0.3,
    )
    result = completion.choices[0].message.content
    history += [{
        "role": "assistant",
        "content": result
    }]
    return result
 
print(chat("帮我写一段tensorflow构建神经网络的代码", history))
print(chat("机器学习呢", history))

改变chat函数的参数,即可进行聊天。你可以把这段代码包装成一个接口,这样就可以将大模型嵌入到你做的平台上啦!

三、智能体

所谓智能体就是让大模型为我们做事,例如制作ppt,大模型本身是做不了PPT的,但是我们可以让大模型生成PPT大纲后,再使用某个插件进行PPT制作。不仅是PPT的制作,还可以让大模型关灯关电视。具体实现如下:

from openai import OpenAI
import re 
 
client = OpenAI(
    api_key = "your_api_key",
    base_url = "https://api.moonshot.cn/v1",
)
 
history = [
    {"role": "system", "content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。"}
]
 
def chat(query, history):
    history += [{
        "role": "user",
        "content": query
    }]
    completion = client.chat.completions.create(
        model="moonshot-v1-32k",
        messages=history,
        temperature=0.3,
    )
    result = completion.choices[0].message.content
    history += [{
        "role": "assistant",
        "content": result
    }]
    return result

我们写几个实例插件,PPT生成、关灯和关电视,代码如下:

def ppt_tool():
    print("使用了ppt_tool这个函数,这个时候你可以在这个函数中做你想做的事")
def light_tool():
    print("使用了light_tool这个函数,这个时候你可以在这个函数中做你想做的事")
def tv_tool():
    print("使用了tv_tool这个函数,这个时候你可以在这个函数中做你想做的事")

 在实际中,这些函数肯定是具体插件的实现,我们这里只做插件调用的测试。

我们需要生成提示词来引导大模型使用某个插件,代码如下:

#%%
def generate_promp(tools,question):
    result = ""  
    for tool in tools:  
        result += f"{tool['name']},功能:{tool['describe']}\n"  # 使用f-string进行格式化,并添加换行符以便每个工具占一行 
    prompt_temp='''
    你现在有以下工具可以使用
    {tools}
    必要的时候请使用以下工具,请记住,你自己没办法生成PPT,如果用户要求你生成PPT的时候请尽可能在工具中找寻能够使用的工具。当你决定使用工具的时候请在回答中回答需要使用的工具的名称,并将其用@@包裹起来(一定要严格按照格式,不要有多的字符),例如:@ppt_tool@,如果你决定不使用工具,则不需要回复工具的名称

    下面是用户的提问:
    {question}
    '''
    prompt=prompt_temp.format(tools=result,question=question)
    return prompt

大模型回答后,我们需要解析其中是否含有这个插件,代码如下:

#%%
def parse_answer(answer):
    match = re.findall(r'@(.*?)@', answer)
    # print(match)
    if match:  
        tool_name_ls =  match # group(1)是第一个括号内的匹配内容
        return tool_name_ls
    else:  
        return None

 使用findall()函数可以匹配多个插件。

接下来就调用插件,代码如下:

def exe_func(tool_name):
    # 遍历工具列表,查找匹配的字典  
    for tool in tools:  
        if tool["name"] == tool_name:  
            # 找到匹配的字典,执行对应的函数  
            tool["func"]()  # 直接调用函数  
            # 注意:这里没有返回函数名,因为函数名通常不是必需的,我们直接执行函数  
            break  # 找到后退出循环  
    else:  
        # 如果没有找到匹配的字典  
        print(f"没有找到名为{tool_name}的工具")

最后代码: 

tools=[{"name":"ppt_tool",
         "describe":"生成PPT工具",
         "func":ppt_tool},
       {"name":"light_tool",
         "describe":"开灯工具",
         "func":light_tool},
       {"name":"tv_tool",
         "describe":"打开电视工具",
         "func":tv_tool}]
prompt1=generate_promp(tools,"帮我生成一份PPT,再开灯和开电视")
print("1----输入模型的ptompt为\n",prompt1)
answer1=chat(prompt1, history)
print("2----模型返回的回答为为\n",answer1)
tool_name_ls=parse_answer(answer1)
print("3----解析出来的tool_name为\n",' '.join(tool_name_ls))
if tool_name_ls is not None:
    print("4----执行结果为\n")
    for tool_name in tool_name_ls:
        exe_func(tool_name)

我们来看看这段代码的输出结果把:

大家看到执行结果,成功的调用了三个插件。

四、总结

文章到此结束啦,大模型的应用不止于此,还有更多的应用等着大家去探索,作者最近又忙又累,想不出来一点了。希望大家可以参考这篇文章,做出更多好玩好用的程序和系统。

本文没有提供其他资源了,下篇文章见!!

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 多智能Simulink仿真模型是一种基于Simulink软件开发的多智能系统模拟工具,通过该模型可以模拟复杂的多智能系统的行为和交互,实现不同智能之间的通信、合作及决策规划等。 在多智能Simulink仿真模型开发过程中,需要首先确定智能个数和智能之间的关系,然后设计每个智能的控制算法,包括决策规划和行为控制等。 利用多智能Simulink仿真模型,可以对多智能系统进行仿真分析,优化智能的控制策略,识别潜在问题,并提高系统的性能和稳定性。此外,该模型还可以用于研究机器人控制、智能交通、自动化生产等领域。 总之,多智能Simulink仿真模型为多智能系统的设计和优化提供了高效可靠的工具,具有广泛的应用前景。 ### 回答2: 多智能Simulink仿真模型是一种用于模拟多个智能交互行为的工具,该工具可以便捷地对复杂的智能系统进行模拟和优化设计。该模型主要由多个子模块组成,每个子模块代表一个智能,通过控制流程和数据传输来实现智能之间的相互作用。仿真模型的设计需要考虑多个因素,包括智能之间的通信协议、任务规划和执行策略等。 多智能Simulink仿真模型可以广泛应用于控制系统、通信系统、机器人控制等领域。例如,在交通路口控制中,可以使用多智能模型模拟多个车辆之间的交通流,通过优化交通信号控制策略来实现交通流量的最优化。 总的来说,多智能Simulink仿真模型是一种非常有效的建模工具,可以帮助研究人员更好地理解多智能系统的行为和优化设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值