建工网官方网站,wordpress最佳服务器配置,网站制作案例策划,国栋建设网站简介
最近在尝试将文心一言的LLM能力接入Promptulate#xff0c;故写了一篇博客记录一下#xff0c;Promptulate 是 Promptulate AI 旗下的大语言模型自动化与应用开发框架#xff0c;旨在帮助开发者通过更小的成本构建行业级的大模型应用#xff0c;其包含了LLM领域应用层…简介
最近在尝试将文心一言的LLM能力接入Promptulate故写了一篇博客记录一下Promptulate 是 Promptulate AI 旗下的大语言模型自动化与应用开发框架旨在帮助开发者通过更小的成本构建行业级的大模型应用其包含了LLM领域应用层开发的大部分常用组件如外部工具组件、模型组件、Agent智能代理、外部数据源接入模块、数据存储模块、生命周期模块等。 通过 Promptulate你可以轻松构建起属于自己的LLM应用程序。 Promptulate官网 将文心一言接入Promptulate之后便可以轻松地利用Promptulate构建一些复杂能力如让大语言模型使用工具。
文心一言介绍
文心一言ERNIE Bot是百度全新一代知识增强大语言模型文心大模型家族的新成员能够与人对话互动回答问题协助创作高效便捷地帮助人们获取信息、知识和灵感。文心一言是知识增强的大语言模型基于飞桨深度学习平台和文心知识增强大模型持续从海量数据和大规模知识中融合学习具备知识增强、检索增强和对话增强的技术特色 。
百度的文心一言被定位为一种基于人工智能的赋能平台旨在为金融、能源、媒体、政务等各行各业的智能化变革提供支持。它将充当一种“生产力工具”的角色通过提供智能化的服务帮助各行业提高工作效率和创造力。最终这将推动各行业的发展提高生产力实现更快、更高效的工作方式。
通过https://yiyan.baidu.com/可以获取文心一言的内测机会。当然你也可以申请获取API这样子你可以有能多自定义功能的能力。
Promptulate
Promptulate AI 专注于构建大语言模型应用的开发者平台致力于为开发者和企业提供构建、扩展、评估大语言模型应用的能力。Promptulate 是 Promptulate AI 旗下的大语言模型自动化与应用开发框架旨在帮助开发者通过更小的成本构建行业级的大模型应用其包含了LLM领域应用层开发的大部分常用组件如外部工具组件、模型组件、Agent智能代理、外部数据源接入模块、数据存储模块、生命周期模块等。 通过 Promptulate你可以轻松构建起属于自己的LLM应用程序。
更多地为构建一个强大而灵活的LLM应用开发平台以创建能够自动化各种任务和应用程序的自主代理Promptulate 通过Core AI Engine、Agent System、APIs and Tools Provider、Multimodal Processing、Knowledge Base和Task-specific Modules 6个组件实现自动化AI平台。 Core AI Engine是该框架的核心组件负责处理和理解各种输入生成输出和作出决策。Agent System是提供高级指导和控制AI代理行为的模块APIs and Tools Provider提供工具和服务交互的API和集成库Multimodal Processing是一组处理和理解不同数据类型如文本、图像、音频和视频的模块使用深度学习模型从不同数据模式中提取有意义的信息Knowledge Base是一个存储和组织世界信息的大型结构化知识库使AI代理能够访问和推理大量的知识Task-specific Modules是一组专门设计用于执行特定任务的模块例如情感分析、机器翻译或目标检测等。通过这些组件的组合框架提供了一个全面、灵活和强大的平台能够实现各种复杂任务和应用程序的自动化。
当前promptulate正处于快速开发阶段仍有许多内容需要完善与讨论十分欢迎大家的讨论与参与而其作为一个大语言模型自动化与应用开发框架主要由以下几部分组成
Agent 更高级的执行器负责复杂任务的调度和分发llm 大语言模型负责生成回答可以支持不同类型的大语言模型Memory 负责对话的存储支持不同的存储方式及其扩展如文件存储、数据库存储等Framework 框架层实现不同类型的prompt框架包括最基础的Conversation模型还有self-ask和ReAct等模型。Tool 提供外部工具扩展调用如搜索引擎、计算器等HookLifecycle Hook系统与生命周期系统开发者可以进行定制化的生命周期逻辑控制Rreset roles 提供预设角色进行定制化对话Provider 为系统提供更多数据源或执行自主操作如数据库的连接 文心一言API快速上手
通过API文档我们可以快速构建起一个基于Python的LLM接入程序。
import json
import requestsAPI_KEY your api key
SECRET_KEY your secret keydef get_access_token():使用 API KeySecret Key 获取access_token替换下列示例中的应用API Key、应用Secret Keyurl fhttps://aip.baidubce.com/oauth/2.0/token?grant_typeclient_credentialsclient_id{API_KEY}client_secret{SECRET_KEY}payload json.dumps()headers {Content-Type: application/json, Accept: application/json}response requests.request(POST, url, headersheaders, datapayload)return response.json().get(access_token)def llm(prompt: str) - str:url (https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token get_access_token())payload json.dumps({messages: [{role: user, content: prompt}]})headers {Content-Type: application/json}response requests.request(POST, url, headersheaders, datapayload)print(response.json()[result])return response.json()[result]if __name__ __main__:llm(你好)当然我们希望用文心一言构建一些复杂的Prompt应用如利用LLM网络搜索下面的示例展示了如何在Promptulate上使用文心一言进行LLM网络搜索的功能。
Promptulate ErnieBot 相关文档 打开终端输入下面命令下载promptulate最新版-U表示更新到最新版如果你已经下载promptulate 旧版本那么执行此命令会更新到最新版。promptulate当前正处于快速发展阶段因此你可能需要经常更新最新版以享用最新的成果。
pip install -U promptulate promptulate可以支持不同类型的大语言模型调用如OpenAI的gpt-3.5 gpt-4.0下面介绍百度文心系列大模型的使用要使用其能力你需要前往百度千帆大模型平台创建大模型应用并获取到对应的API Key和Secret Key。
如果你想使用国产文心系列模型只需要 ErnieBot()进行初始化文心模型虽然与openai模型有较大差异但是框架提供了尽可能完美的兼容。 你还可以使用ErnieBot(model“ernie-bot”)来具体选择对应的文心模型目前框架提供了两种文心模型分别是文心一言“ernie-bot”和文心turbo“ernie-bot-turbo”,默认为文心turbo模型。
KEY配置
在使用百度千帆大模型平台系列的LLM之前你需要先导入你的API Key和Secret Key
import osos.environ[ERNIE_API_KEY] your api key
os.environ[ERNIE_API_SECRET] your secret key
在你第一次使用的时候需要使用上述代码导入环境变量但是在第一运行之后promptulate 会进行缓存即后面再运行就不需要再导入key了。
如果你的key过期了可以尝试重新按照上面的方法导入key或者你也可以把 cache 文件给删除掉通过以下代码可以获取到缓存文件的位置:
from promptulate.utils import get_default_storage_pathprint(get_default_storage_path())LLM快速上手
promptulate的架构设计可以轻松兼容不同的大语言模型扩展在promptulate中llm负责最基本的内容生成部分因此为最基础的组件。
下面的示例展示了如何使用百度文心ErnieBot的大语言模型进行交互。
如果你想使用国产文心系列模型只需要 ErnieBot()进行初始化文心模型虽然与openai模型有较大差异但是框架提供了尽可能完美的兼容。 你还可以使用ErnieBot(model“ernie-bot”)来具体选择对应的文心模型目前框架提供了两种文心模型分别是文心一言“ernie-bot”和文心turbo“ernie-bot-turbo”,默认为文心turbo模型。
from promptulate.llms import ErnieBotllm ErnieBot()
answer llm(请解释一下引力波的放射与广义相对论的必然关系)
print(answer) 上述ErnieBot默认使用ernie-bot-turbo模型 输出结果如下
广义相对论是一种描述引力如何影响时空的物理学理论它指出当物质和能量聚集在一起时它们弯曲了周围的时空引起了引力。质量和能量更大的物体会导致更大
的时空弯曲这就是为什么地球会围绕太阳旋转。根据广义相对论当物质或能量在空间中运动时它们会产生引力波就像在水面上产生涟漪一样。引力波是一种类
似电磁波的波动但它们是由物质和能量的弯曲引起的而电磁波是由电荷的振动引起的。引力波是极微弱的但是当强烈的引力场存在例如在引力天体碰撞或超新
星爆炸等事件中它们可以被探测到。事实上2015年激光干涉引力波天文台利用引力波探测器直接探测到了引力波并为广义相对论提供了强有力的证据。因
此引力波的放射与广义相对论必然关系紧密。通过引力波我们可以更加深入地了解时空的性质并进一步验证这个理论。切换模型
文心提供了 “ernie-bot与ernie-bot-turbo”详情介绍查看官方文档与API文档
ERNIE-Bot-turbo
文心一言人工智能大语言模型拥有产业级知识增强文心大模型ERNIE具备跨模态、跨语言的深度语义理解与生成能力。
ERNIE-Bot
文心一言大语言模型基于飞桨深度学习平台和文心知识增强的强大模型持续从海量数据和大模型知识中融合学习。具备知识增强、检索增强和对话增强的技术特色。
你可以使用如下方式切换模型
from promptulate.llms import ErnieBotllm ErnieBot(modelernie-bot)
answer llm(请解释一下引力波的放射与广义相对论的必然关系)
print(answer)网络搜索
下面展示如何使用ErnieBot进行网络搜索。
from promptulate.tools import (DuckDuckGoTool,Calculator,
)
from promptulate.llms import ErnieBot
from promptulate.agents import ToolAgentdef main():llm ErnieBot(temperature0.0)tools [DuckDuckGoTool(),Calculator(),]agent ToolAgent(toolstools,llmllm)prompt Who is Leo DiCaprios girlfriend? What is her current age raised to the 0.43 power?agent.run(prompt)if __name__ __main__:main()在上述代码中使用DuckDuckGo进行网络搜索最后运行结果如下 参考资料
Promptulate官网Promptulate github如何获得内测和使用方法