【千帆AppBuilder】使用Python调用基于官方的API创建图片故事的应用,一起体验下全代码模式下是怎样的效果

本文主要是介绍【千帆AppBuilder】使用Python调用基于官方的API创建图片故事的应用,一起体验下全代码模式下是怎样的效果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎来到《小5讲堂》
这是《千帆》系列文章,每篇文章将以博主理解的角度展开讲解。
温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!

在这里插入图片描述

目录

  • 背景
  • 基本信息
    • 名称
    • 简介
    • 角色指令
  • 能力扩展
    • 组件
    • 对话
      • 开场白
      • 推荐问
  • 模型选择
  • 体验效果
    • 参考图
  • 全代码设置
    • 获取应用ID
    • API调用
    • 设置密钥
    • 新建会话
    • 大模型对话
    • 上传文件
    • 完整代码
  • 调试
    • 新建会话
    • 大模型对话
    • 上传文件
  • 体验效果
  • 推荐文章

背景

前段时间看到一个关于由图片生成故事的讨论。
因此基于这个讨论点通过千帆AppBuilder创建AI应用。
AppBuilder创建应用支持上传图片和文件,这个满足我们的需求。
Let’s Go

基本信息

名称

图转故事小达人

简介

这是一款通过上传一张图片进行故事创建的AI应用。

角色指令

#角色设定
作为一个图转故事小达人,你的任务是根据用户上传的图片进行短篇故事创作,并且通过创作故事内容提取关键信息生成一张图片。#组件能力
1.你具备图像内容理解能力。
2.你具备文生图能力。
3.文生图查询参数值加一个前缀:画一张图,内容为XXX。#要求与限制
1.输出内容的风格要求符合图片理解方向。
2.输出结果的格式为标题加粗、创作故事段落分明、最后一张图片显示。
3.输出内容的字数限制不超过1000字。
4.如果没有识别到,那么提示用户上传一张图片。
5.必须调用文生图组件生成一张图片。
6.严格根据格式输出。#输出格式
**标题**:XXX
**故事内容**:
XXX![图片](XXX)

能力扩展

组件

使用两个官方组件,图像内容理解和文生图组件。
在这里插入图片描述

对话

开场白

你好,欢迎使用图转故事小达人,快来上传图片生成你的专属故事吧。

推荐问

请开始创作故事

模型选择

思考模型选择ERNIE-4.0-8K,因为要达到最佳效果的思路,所以选择了最准的模型,速度会相对较慢。
问答模型,只需要把创作的故事输出,无需太多处理,直接选择速度最快的即可。在这里插入图片描述

体验效果

参考图

在这里插入图片描述
在这里插入图片描述

全代码设置

完成上面的应用创建后,点击发布,完成发布后,即可得到应用ID

获取应用ID

返回到AppBuilder页面的个人空间,找到刚刚已发布的应用ID,复制应用ID在这里插入图片描述

API调用

点击编辑,再点发布以及API调用。上面有很全的代码示例,大部分后端语言的示例都有,非常的贴心。
同时也提供了很详细的请求和响应参数说明,也可以点击页面跳转到具体技术文档。在这里插入图片描述

设置密钥

打开AppBuilder页面,点开密钥管理选项,如果还没有设置密钥,点击新增密钥。在这里插入图片描述

新建会话

下面是Python示例代码的新建会话。
对话id,可以用于后续调用,有效期为7天。
备注:如果对于高并发场景,那么可以把会话id缓存起来,不必要每次都调用。
技术文档:https://cloud.baidu.com/doc/AppBuilder/s/vlv2ftwfs

import requests
import jsondef main():url = "https://qianfan.baidubce.com/v2/app/conversation"payload = json.dumps({"app_id": "粘贴刚刚复制好的应用ID"})headers = {'Content-Type': 'application/json','X-Appbuilder-Authorization': 'Bearer 复制密钥管理设置的密钥'}response = requests.request("POST", url, headers=headers, data=payload)print(response.text)if __name__ == '__main__':main()

大模型对话

技术文档:https://cloud.baidu.com/doc/AppBuilder/s/mlv2fvh79

import requests
import jsondef main():url = "https://qianfan.baidubce.com/v2/app/conversation/runs"payload = json.dumps({"app_id": "应用ID","stream": False})headers = {'Content-Type': 'application/json','X-Appbuilder-Authorization': 'Bearer 密钥'}response = requests.request("POST", url, headers=headers, data=payload)print(response.text)if __name__ == '__main__':main()

默认情况下,中文未显示出来,显示的是编码值。在这里插入图片描述
解决方法:使用json()方法在这里插入图片描述

上传文件

技术文档:https://cloud.baidu.com/doc/AppBuilder/s/flv2fur67
上传图片这里示例有个坑,如果用了Content-Type的multipart/form-data值响应一直说失败。
注释后,响应成功。在这里插入图片描述
文件名不能包含特殊符号。在这里插入图片描述
在这里插入图片描述

完整代码

大模型对话,如果内容比较多,那么是会分data多个返回。
这里返回的数据就不能直接转为json,需要自己额外处理再转为json。

在这里插入图片描述

import requests
import jsonapp_id="应用ID"
Bearer="密钥"## 主入口
def main():# 对话id,可以用于后续调用,有效期为7天。createSession()## 创建会话 
def createSession():url = "https://qianfan.baidubce.com/v2/app/conversation"payload = json.dumps({"app_id": app_id})headers = {'Content-Type': 'application/json','X-Appbuilder-Authorization': 'Bearer '+Bearer}response = requests.request("POST", url, headers=headers, data=payload)response_json=response.json()conversation_id=response_json['conversation_id']print('会话响应值:',response_json)print('\r\n')# 上传图片uploadImage(conversation_id)## 上传图片
def uploadImage(conversation_id):url = "https://qianfan.baidubce.com/v2/app/conversation/file/upload"payload = {'app_id': app_id,'conversation_id':conversation_id}# 图片文件路径image_path = 'D:\\temp\\test.png'  # 替换为你的图片文件路径# 使用 'file' 作为 POST 请求中的字段名files=[('file',('test.png',open(image_path,'rb'),'image/png'))]headers = {# 'Content-Type': 'multipart/form-data', # 加这句话响应失败'X-Appbuilder-Authorization': 'Bearer '+Bearer}response = requests.request("POST", url, headers=headers, data=payload, files=files)response_json=response.json()print('上传图片响应值:',response_json)print('\r\n')# 对话id,可以用于后续调用,有效期为7天。createChat(conversation_id,response_json['id'])## 大模型对话
def createChat(conversation_id,file_id):query="请开始创作故事"url = "https://qianfan.baidubce.com/v2/app/conversation/runs"file_ids=[]payload = json.dumps({"app_id": app_id,"stream": True,"query":query,"conversation_id":conversation_id,"file_ids":[file_id]})headers = {'Content-Type': 'application/json','X-Appbuilder-Authorization': 'Bearer '+Bearer}response = requests.request("POST", url, headers=headers, data=payload)#print(response.text)#response_json=response.json()print('大模型对话响应值:',response.text)if __name__ == '__main__':main()

调试

上面也非常贴心的提供了一个调试按钮,直接在页面就可以调试查看结果。

新建会话

在这里插入图片描述

大模型对话

大模型对话也需要依赖于会话编号。在这里插入图片描述

上传文件

上传文件也需要依赖于会话编号。
示例代码中心:点击跳转查看在这里插入图片描述

体验效果

增加数字人提高体验效果,有数字人可以直接进行故事播报,也是不错的体验。在这里插入图片描述
在这里插入图片描述

  • 体验地址
    我在百度智能云千帆AppBuilder开发了一款AI原生应用,快来使用吧!「图转故事小达人」:https://appbuilder.baidu.com/s/pOVocg7O
    手机端体验地址:https://wx.baeapps.com/api/ai_apaas/v1/wx_program/share?share_code=appalWBosSSbvtVOI89fP8S

推荐文章

【千帆AppBuilder】你有一封邮件待查收|未来的我,你好吗?欢迎体验AI应用《未来信使》

【千帆平台】零代码结合知识库或者插件开发一款AI应用,2024年奥运会运动员获奖信息(人工智能应用)

【千帆AppBuidler】零代码构建AI人工智能应用,全网都在喊话歌手谁能应战,一键AI制作歌手信息查询应用

【千帆平台】使用AppBuilder零代码创建应用,然后通过OpenAPI方式调用应用

【千帆平台】AIGC人工智能应用,使用AppBuilder零代码创建应用,Excel表格数据转为Markdown格式文本

这篇关于【千帆AppBuilder】使用Python调用基于官方的API创建图片故事的应用,一起体验下全代码模式下是怎样的效果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1129915

相关文章

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函