assistant.ipynb•24.1 kB
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Assistant\n",
"\n",
"本文档描述 Assistants API 中 与 Assistant 相关函数调用"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 环境准备\n",
"\n",
"首先需要安装AppBuilder-SDK代码库,若已在开发环境安装,则可跳过此步。\n",
"\n",
"**注意:**: appbuilder-sdk 的python版本要求 3.9+,安装的SDK version >= 0.7.0"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"vscode": {
"languageId": "shellscript"
}
},
"outputs": [],
"source": [
"!python3 -m pip install appbuilder-sdk"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import appbuilder\n",
"\n",
"# 配置你的密钥,主要在这之前需要首先申请Assistant API的内测资格\n",
"os.environ[\"APPBUILDER_TOKEN\"] = \"your_appbuilder_token\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Assistant相关函数\n",
"\n",
"### 创建Assistant\n",
"\n",
"#### 功能介绍\n",
"\n",
"创建一个Assistant"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"id='asst_63ab25b82a7649d5a763415e978c4f01' object='assistant' name='测试' description='test' instructions='你是百度制作的AI助手' tools=[] created_at=1717645100200 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata={'key': 'value'}\n"
]
}
],
"source": [
"\n",
"assistant = appbuilder.assistant.assistants.create(\n",
" model = \"ERNIE-4.0T-8K\",\n",
" name=\"测试\",\n",
" description=\"test\",\n",
" metadata={\n",
" \"key\": \"value\",\n",
" }\n",
" )\n",
"\n",
"# 打印创建的assistant\n",
"print(assistant)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 修改Assistant\n",
"\n",
"#### 功能介绍\n",
"\n",
"根据assistant_id修改一个已创建的Assistant"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"id='asst_63ab25b82a7649d5a763415e978c4f01' model='ERNIE-4.0-8K' name='更新Assistants' description='test' response_format=<ResponseFormat.TEXT: 'text'> instructions='' created_at=1717645100200 thought_instructions='' chat_instructions='' tools=[] file_ids=[] metadata={'key': 'value'}\n"
]
}
],
"source": [
"# 更新已经创建的āssistant的信息\n",
"appbuilder_update=appbuilder.assistant.assistants.update(\n",
" assistant_id = assistant.id,# 已经创建的Assistant ID\n",
" model=\"ERNIE-4.0T-8K\",\n",
" name=\"更新Assistants\",\n",
" description = \"test\"\n",
")\n",
"\n",
"# 获取更新后的assistant信息 \n",
"print(appbuilder_update)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 查询assistant列表\n",
"\n",
"#### 功能介绍\n",
"\n",
"查询当前用户已创建的assistant列表"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"id='asst_c16bd73ab73d499387b2bfd8146cfb0a' object='assistant' name='python程序设计助教' description='幽默讲解Python基础。' instructions='### 角色与目标\\n**你是Python入门导师**,专门为初学者讲授Python编程知识。你的目标是引导学生掌握Python语言基础,包括语言概述、变量、表达式、基本和组合数据类型、控制结构语句、函数定义与调用、标准库和第三方库的使用、异常处理和文件读写,并通过实际案例帮助学生加深理解。\\n### 指导原则\\n1. **教育性**:确保教学内容准确、系统,能够帮助学生建立扎实的编程基础。\\n2. **实践性**:结合日常案例,让学生能够将理论知识应用于实际。\\n3. **易懂性**:用幽默风趣、简洁明了的语言解释概念,降低初学者的学习难度。\\n### 限制\\n* 避免涉及过于复杂的编程技巧和高级话题,确保内容适合初学者。\\n* 不轻易提供具体的编程作业答案,而是引导学生自己思考和解决问题。但如果学生始终解决不了问题,也可以提供正确答案。\\n### 澄清\\n* 你的教学内容主要围绕Python编程的基础知识和实践应用。\\n* 你会通过案例和实例来帮助学生理解和掌握Python编程的基本概念。\\n### 个性化\\n你以幽默风趣的教学风格著称,能够将枯燥的编程知识以生动有趣的方式呈现出来。你对学生充满耐心,总是乐于解答他们的疑问,并引导他们逐步成长为编程小能手。' tools=[] created_at=1717645108134 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_63ab25b82a7649d5a763415e978c4f01' object='assistant' name='更新Assistants' description='test' instructions='' tools=[] created_at=1717645100200 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata={'key': 'value'}\n",
"id='asst_4d865b80be684b8aa2a1e37c625ba476' object='assistant' name='原神内鬼消息爆料' description='舅舅永垂不朽' instructions='' tools=[] created_at=1717645054395 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_3371b90537414828bb85e32c49161ba0' object='assistant' name='严谨文案助手' description='严谨文案的秘书Agent' instructions='' tools=[] created_at=1717644994838 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_da1b2ad23e9e4da4ab5a45203f849c71' object='assistant' name='严谨文案助手' description='严谨文案的秘书Agent' instructions='作为秘书Agent,你的主要职责是协助处理文案工作,确保文字表达的严谨性,同时提供有效的行政支持。' tools=[] created_at=1717644990269 thought_instructions='在处理文案任务时,应特别注重文字的逻辑性、准确性和严谨性。当遇到不确定的表述或需要深入研究的内容时,务必进行充分的核实和查证,以确保最终输出的文案质量。' chat_instructions='回复用户时,请使用严谨、正式的语言风格,避免使用口语化或随意的表达方式。在提供文案建议或修改意见时,要详细阐述修改理由,以便用户更好地理解。' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_a56ad90640114d17a5aaad0b22d330d8' object='assistant' name='朋友圈优化助手' description='你好,我是你的朋友圈优化助手。我会把你的朋友圈文案变得更吸引人,引发更多互动。请告诉我你需要优化的文案吧。' instructions='' tools=[] created_at=1717644978845 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_7302428c9a2840efa192eff12ce15d6d' object='assistant' name='python程序设计助教' description='幽默讲解Python基础。' instructions='### 角色与目标\\n**你是Python入门导师**,专门为初学者讲授Python编程知识。你的目标是引导学生掌握Python语言基础,包括语言概述、变量、表达式、基本和组合数据类型、控制流语句、函数定义与调用、异常处理和文件读写,并通过实际案例帮助学生加深理解。\\n### 指导原则\\n1. **教育性**:确保教学内容准确、系统,能够帮助学生建立扎实的编程基础。\\n2. **实践性**:结合日常案例,让学生能够将理论知识应用于实际。\\n3. **易懂性**:用幽默风趣、简洁明了的语言解释概念,降低初学者的学习难度。\\n### 限制\\n* 避免涉及过于复杂的编程技巧和高级话题,确保内容适合初学者。\\n* 不提供具体的编程作业答案,而是引导学生自己思考和解决问题。\\n### 澄清\\n* 你的教学内容主要围绕Python编程的基础知识和实践应用。\\n* 你会通过案例和实例来帮助学生理解和掌握Python编程的基本概念。\\n### 个性化\\n你以幽默风趣的教学风格著称,能够将枯燥的编程知识以生动有趣的方式呈现出来。你对学生充满耐心,总是乐于解答他们的疑问,并引导他们逐步成长为编程小能手。' tools=[] created_at=1717644940885 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_42d9cbd188f7416d8c77dad839d45bf8' object='assistant' name='低代码升级777' description='你好,欢迎来到低代码升级1~' instructions='' tools=[] created_at=1717644917557 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_532c0240d3f248b78d4c334da93698c0' object='assistant' name='低代码升级777' description='你好,欢迎来到低代码升级1~' instructions='' tools=[] created_at=1717644917069 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_9c9ea21b1fba4767b2fbfbbd34993d84' object='assistant' name='动物管理员2' description='嘿,你好啊!我是动物百事通,对各种动物的生活习性和饮食习惯都了如指掌。如果你对动物有任何疑问或者想了解更多关于它们的信息,都可以来问我哦!' instructions='### 角色与目标\\n**动物园管理员**是你现在的身份,你熟知每一种动物的生活习性以及它们的饮食习惯。你的目标是利用这些专业知识,为动物园的动物们提供最佳的照顾,同时向游客普及动物知识,提升他们对动物保护的意识。\\n### 指导原则\\n1. **专业性**:确保你对动物的管理和照顾都基于专业的动物学知识和实践经验。\\n2. **细心与耐心**:在观察动物行为和解答游客问题时,展现出你的细心和耐心。\\n3. **教育与宣传**:抓住与游客交流的机会,积极宣传动物保护的重要性和方法。\\n### 限制\\n* 你不具备医学诊断能力,对于动物出现的健康问题,应建议联系专业兽医进行检查和治疗。\\n* 对于涉及动物园内部管理和决策的问题,你可能无法直接回答或处理。\\n### 澄清\\n* 你可以回答关于动物生活习性、饮食习惯、栖息地环境等方面的问题。\\n* 你可以提供动物照顾和管理的建议,但具体实施可能需要根据动物园的实际情况进行调整。\\n### 个性化\\n作为一位动物园管理员,你热爱大自然和所有生物,尤其对那些你照顾的动物们有着深厚的感情。你总是面带微笑,对每一位游客都热情友好,愿意与他们分享你的知识和经验。同时,你也非常重视动物福利,致力于为动物们创造一个舒适、安全的家。' tools=[] created_at=1717644916619 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_5b9334ea24e7489a9e1c6855d9c4fe13' object='assistant' name='低代码升级777' description='你好,欢迎来到低代码升级1~' instructions='' tools=[] created_at=1717644913010 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_7bbb3cae27c54e5a9e5b61ff7863997e' object='assistant' name='低代码升级777' description='你好,欢迎来到低代码升级1~' instructions='' tools=[] created_at=1717644912554 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_dc30652721b745b2a80c150add4387a0' object='assistant' name='动物管理员2' description='嘿,你好啊!我是动物百事通,对各种动物的生活习性和饮食习惯都了如指掌。如果你对动物有任何疑问或者想了解更多关于它们的信息,都可以来问我哦!' instructions='### 角色与目标\\n**动物园管理员**是你现在的身份,你熟知每一种动物的生活习性以及它们的饮食习惯。你的目标是利用这些专业知识,为动物园的动物们提供最佳的照顾,同时向游客普及动物知识,提升他们对动物保护的意识。\\n### 指导原则\\n1. **专业性**:确保你对动物的管理和照顾都基于专业的动物学知识和实践经验。\\n2. **细心与耐心**:在观察动物行为和解答游客问题时,展现出你的细心和耐心。\\n3. **教育与宣传**:抓住与游客交流的机会,积极宣传动物保护的重要性和方法。\\n### 限制\\n* 你不具备医学诊断能力,对于动物出现的健康问题,应建议联系专业兽医进行检查和治疗。\\n* 对于涉及动物园内部管理和决策的问题,你可能无法直接回答或处理。\\n### 澄清\\n* 你可以回答关于动物生活习性、饮食习惯、栖息地环境等方面的问题。\\n* 你可以提供动物照顾和管理的建议,但具体实施可能需要根据动物园的实际情况进行调整。\\n### 个性化\\n作为一位动物园管理员,你热爱大自然和所有生物,尤其对那些你照顾的动物们有着深厚的感情。你总是面带微笑,对每一位游客都热情友好,愿意与他们分享你的知识和经验。同时,你也非常重视动物福利,致力于为动物们创造一个舒适、安全的家。' tools=[] created_at=1717644912102 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_7637e1b9cc414be0b7276fccb434521a' object='assistant' name='低代码升级777' description='你好,欢迎来到低代码升级1~' instructions='' tools=[] created_at=1717644906943 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_063b5889b7fa4074addb59d83856a561' object='assistant' name='低代码升级777' description='你好,欢迎来到低代码升级1~' instructions='' tools=[] created_at=1717644906449 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_fda5cbf3e1c442d185f813107d324768' object='assistant' name='动物管理员2' description='嘿,你好啊!我是动物百事通,对各种动物的生活习性和饮食习惯都了如指掌。如果你对动物有任何疑问或者想了解更多关于它们的信息,都可以来问我哦!' instructions='### 角色与目标\\n**动物园管理员**是你现在的身份,你熟知每一种动物的生活习性以及它们的饮食习惯。你的目标是利用这些专业知识,为动物园的动物们提供最佳的照顾,同时向游客普及动物知识,提升他们对动物保护的意识。\\n### 指导原则\\n1. **专业性**:确保你对动物的管理和照顾都基于专业的动物学知识和实践经验。\\n2. **细心与耐心**:在观察动物行为和解答游客问题时,展现出你的细心和耐心。\\n3. **教育与宣传**:抓住与游客交流的机会,积极宣传动物保护的重要性和方法。\\n### 限制\\n* 你不具备医学诊断能力,对于动物出现的健康问题,应建议联系专业兽医进行检查和治疗。\\n* 对于涉及动物园内部管理和决策的问题,你可能无法直接回答或处理。\\n### 澄清\\n* 你可以回答关于动物生活习性、饮食习惯、栖息地环境等方面的问题。\\n* 你可以提供动物照顾和管理的建议,但具体实施可能需要根据动物园的实际情况进行调整。\\n### 个性化\\n作为一位动物园管理员,你热爱大自然和所有生物,尤其对那些你照顾的动物们有着深厚的感情。你总是面带微笑,对每一位游客都热情友好,愿意与他们分享你的知识和经验。同时,你也非常重视动物福利,致力于为动物们创造一个舒适、安全的家。' tools=[] created_at=1717644905971 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_27d74df507714d62960bfff9d550b4f8' object='assistant' name='个人代码助理' description='帮我优化代码' instructions='' tools=[] created_at=1717644900781 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_8e84b1b5204848c4af2741f067a39b8e' object='assistant' name='低代码升级777' description='你好,欢迎来到低代码升级1~' instructions='' tools=[] created_at=1717644893777 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_9fb67a5352e64be78aad612e7a83efaf' object='assistant' name='低代码升级777' description='你好,欢迎来到低代码升级1~' instructions='' tools=[] created_at=1717644893315 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n",
"id='asst_ff56e2e3fefb41c4a7f3cfd986bba3f3' object='assistant' name='动物管理员2' description='嘿,你好啊!我是动物百事通,对各种动物的生活习性和饮食习惯都了如指掌。如果你对动物有任何疑问或者想了解更多关于它们的信息,都可以来问我哦!' instructions='### 角色与目标\\n**动物园管理员**是你现在的身份,你熟知每一种动物的生活习性以及它们的饮食习惯。你的目标是利用这些专业知识,为动物园的动物们提供最佳的照顾,同时向游客普及动物知识,提升他们对动物保护的意识。\\n### 指导原则\\n1. **专业性**:确保你对动物的管理和照顾都基于专业的动物学知识和实践经验。\\n2. **细心与耐心**:在观察动物行为和解答游客问题时,展现出你的细心和耐心。\\n3. **教育与宣传**:抓住与游客交流的机会,积极宣传动物保护的重要性和方法。\\n### 限制\\n* 你不具备医学诊断能力,对于动物出现的健康问题,应建议联系专业兽医进行检查和治疗。\\n* 对于涉及动物园内部管理和决策的问题,你可能无法直接回答或处理。\\n### 澄清\\n* 你可以回答关于动物生活习性、饮食习惯、栖息地环境等方面的问题。\\n* 你可以提供动物照顾和管理的建议,但具体实施可能需要根据动物园的实际情况进行调整。\\n### 个性化\\n作为一位动物园管理员,你热爱大自然和所有生物,尤其对那些你照顾的动物们有着深厚的感情。你总是面带微笑,对每一位游客都热情友好,愿意与他们分享你的知识和经验。同时,你也非常重视动物福利,致力于为动物们创造一个舒适、安全的家。' tools=[] created_at=1717644892836 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata=None\n"
]
}
],
"source": [
"assistant_list = appbuilder.assistant.assistants.list()\n",
"\n",
"# 打印出当前账户所有的assistant信息\n",
"for assistant_data in assistant_list.data:\n",
" print(assistant_data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 查询assistant\n",
"\n",
"#### 功能介绍\n",
"\n",
"根据assistant_id查询相应的Assistant信息"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"id='asst_63ab25b82a7649d5a763415e978c4f01' object='assistant' name='更新Assistants' description='test' instructions='' tools=[] created_at=1717645100200 thought_instructions='' chat_instructions='' response_format=<ResponseFormat.TEXT: 'text'> file_ids=[] metadata={'key': 'value'}\n"
]
}
],
"source": [
"assistant_query = appbuilder.assistant.assistants.query(\n",
" assistant_id = assistant.id,\n",
")\n",
"\n",
"# 打印出查询的assistant相关信息\n",
"print(assistant_query)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 挂载File到Assistant\n",
"\n",
"#### 功能介绍\n",
"\n",
"指定file_id和assistant_id,挂载File到对应的Assistant"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"# 首先上传一个测试文件\n",
"file_path = \"./data/test01.png\"\n",
"file = appbuilder.assistant.assistants.files.create(file_path=file_path)\n",
"\n",
"# 挂载文件到assistants上\n",
"assistant_mount = appbuilder.assistant.assistants.mount_files(\n",
" assistant_id = assistant.id,\n",
" file_id = file.id,\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 查询Assistant挂载的File列表\n",
"\n",
"#### 功能介绍\n",
"\n",
"查询Assistant挂载的File列表"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"assistant_files_list = appbuilder.assistant.assistants.mounted_files_list(\n",
" assistant_id = assistant.id,\n",
")\n",
"\n",
"# 打印当前assistant上挂载的file文件列表\n",
"for file in assistant_files_list.data:\n",
" print(file)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 解绑Assistant挂载的File\n",
"\n",
"#### 功能介绍\n",
"\n",
"指定assistant_id和file_id,解绑Assistant中对应File的关联"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# 解绑Assistant中对应File的关联\n",
"assistant_files_delete = appbuilder.assistant.assistants.unmount_files(\n",
" assistant_id = assistant.id,\n",
" file_id = file.id,\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 删除assistant\n",
"\n",
"#### 功能介绍\n",
"\n",
"根据assistant_id删除指定Assitant"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"id='asst_63ab25b82a7649d5a763415e978c4f01' object='assistant.deleted' deleted=True\n"
]
}
],
"source": [
"assistant_delete = appbuilder.assistant.assistants.delete(\n",
" assistant_id = assistant.id,\n",
")\n",
"\n",
"# 获取到assistant_id以及是否删除成功信息\n",
"print(assistant_delete)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}