大模型趣味赛「大模型摇摇乐」活动火热进行中。想要更加了解本次活动的规则并拿到更丰富的奖励吗?快来看本教程吧!本文将以“AI 一键生成文案”为例进行教程讲解~
项目简介
设计背景
为什么做这个项目
在社交媒体日益流行的时代,许多人在分享照片时常常苦恼于如何配文,本项目让每张照片都能轻松配上合适的文案。
提供了什么能力
结合了飞桨图像识别和文心大模型的处理技术,能够智能分析照片内容,并根据分析结果生成有创意的文案。
解决了什么问题
用户上传照片,一键自动生成文案,解决了用户在分享照片时“想不到文案”这一问题。
效果展示
🐬 小红书风格:今天去看了海洋馆,写一篇小红书推文!
🤔 近代诗歌风格:看到良辰美景,想要吟诗作赋一首
体验地址
图片文案摇摇乐(AI图片识别文案好帮手)&version=13080310&nettype=WIFI&lang=zh_CN&countrycode=SE&fontScale=100&exportkey=n_ChQIAhIQoxIksv5qtMG3qOc4inhTIhKDAgIE97dBBAEAAAAAAKxKCHbpAyMAAAAOpnltbLcz9gKNyK89dVj0o8gCcGes%2F2x%2FJsXjY2j2AejkUl47w8%2F1GL226zENp0N4Hk0rCtPASeKOuf3fOO9tguUflOW7JHIO9IJkL45eKuYzqSaCOYf5%2BM3UbmGJdeNd9cBXXiUnwQsf33pmuAzqBKrY1gwQD5cjGLdXWxBGylAIDuDgppYZUK8JMxTswX5tg1T1%2FbUAHQlToPBoNtAI8cOxwS5LDqSTm3CwmpbsEXInzR8yIi2Pd%2BPnN4w2Kd9YKuXJzABzH2VLrZ8tgTVC7qD9M%2B4BII2fSnUtZLvWQmjKXd6w4mUsZ76IBLY%3D&acctmode=0&pass_ticket=h3XrLen%2BARpthry%2BHKIo1Uyv53lZVC1%2F%2F5bx5f8ohU2MU0aI0LHRt26k5x4m0BX%2B%2FZKQJ1K62ETKJpJhJpk%2FSw%3D%3D&wx_header=0&fasttmpl_type=0&fasttmpl_fullversion=6978942-zh_CN-zip&fasttmpl_flag=3)
设计思路
交互逻辑
1.上传图片
2.选择风格
3.生成文案
数据流逻辑
1.上传图片
2.图像识别、OCR识别
3.得到图片关键信息
4.风格选择
5.Prompt模版适配
6.文心一言处理Prompt+图片关键信息
7.输出文案
实现流程
根据不同AI原生应用场景,可以围绕以下3点设计产品功能:
- 支持用户上传图片
- 支持选择文案风格
- 支持自动生成文案
环境准备
请在下面三选一即可,如果您已经有Python3.x相关环境可直接进行下一步。
1.飞桨星河社区:
在线使用免费的 GPU 资源,Notebook 开发教程:https://www.bilibili.com/video/BV1Lw411n7oU
2.Anaconda 全家桶:
已包含 Python 和一些库,介绍、安装及使用教程:https://zhuanlan.zhihu.com/p/32925500
3.Python 官方网站:
https://www.python.org/ 进行下载安装。
Gradio 基础框架搭建
为什么选择 Gradio 作为 AI 的 UI 工具?
1.基于 Python:
Gradio 是基于 Python 开发的库,使用 Gradio 作为 UI 工具避免频繁切换复杂语言。
2.模块丰富:
支持多种输入和输出类型,包括文本、图像、音频等,同时还提供了丰富的界面组件。
3.简单易用:
快速构建交互式应用程序,无需繁琐的代码编写和复杂的配置。
Gradio 官方参考文档:https://www.gradio.app/guides/quickstart
1.打开命令行界面:打开命令行界面(例如 Windows 上的命令提示符或 Mac 上的终端)。
2.使用 pip 安装 Gradio:在命令行界面中输入以下命令,按下回车执行:
在项目工程文件使用时,只需导入 gradio 库即可,示例:
示例运行效果图
✍️初版设计
使用大语言模型生成代码:将需求告诉文心一言,便快速生成 Gradio代码,并按照实际需求不断调整优化。
【用户】:
【回复】:
运行效果图现在基础交互框架搭建完毕,支持图片上传、样式选择、提交清除按钮、转换文本输出模块。接下来,结合实际业务流程补充代码模块。
功能设计与能力补齐
在产品设计中,需要利用图像识别和 OCR 能力进行图片分析,大语言模型的能力处理数据,下面将介绍如何使用相关能力进行应用设计:
ERNIE Bot SDK
ERNIE Bot SDK 提供便捷易用的接口,可以调用文心一言的能力,包含文本创作、通用对话、语义向量、AI 作图等,具体支持功能如下(更多功能持续更新中):
- 对话补全(Chat Completion)
- 语义向量(Embedding)
- 文生图 (Image Generation)
- 函数调用 (Function Calling)
介绍地址:https://aistudio.baidu.com/cooperate/yiyan
如何完成身份鉴权并使用?
在飞桨星河社区个人中心的访问令牌页面,大家可以获取到自己的 Access Token。
鉴权信息获取完整流程:https://github.com/PaddlePaddle/ERNIE-Bot-SDK/blob/develop/docs/authentication.md
ERNIE Bot SDK 开发完整教程可参考:ERNIE Bot SDK基础教程&version=13080310&nettype=WIFI&lang=zh_CN&countrycode=SE&fontScale=100&exportkey=n_ChQIAhIQoxIksv5qtMG3qOc4inhTIhKDAgIE97dBBAEAAAAAAKxKCHbpAyMAAAAOpnltbLcz9gKNyK89dVj0o8gCcGes%2F2x%2FJsXjY2j2AejkUl47w8%2F1GL226zENp0N4Hk0rCtPASeKOuf3fOO9tguUflOW7JHIO9IJkL45eKuYzqSaCOYf5%2BM3UbmGJdeNd9cBXXiUnwQsf33pmuAzqBKrY1gwQD5cjGLdXWxBGylAIDuDgppYZUK8JMxTswX5tg1T1%2FbUAHQlToPBoNtAI8cOxwS5LDqSTm3CwmpbsEXInzR8yIi2Pd%2BPnN4w2Kd9YKuXJzABzH2VLrZ8tgTVC7qD9M%2B4BII2fSnUtZLvWQmjKXd6w4mUsZ76IBLY%3D&acctmode=0&pass_ticket=h3XrLen%2BARpthry%2BHKIo1Uyv53lZVC1%2F%2F5bx5f8ohU2MU0aI0LHRt26k5x4m0BX%2B%2FZKQJ1K62ETKJpJhJpk%2FSw%3D%3D&wx_header=0&fasttmpl_type=0&fasttmpl_fullversion=6978942-zh_CN-zip&fasttmpl_flag=3)
👉 快速开始
1.打开命令行界面:打开命令行界面(例如 Windows 上的命令提示符或 Mac 上的终端)。
2.使用 pip 安装 ERNIE Bot:在命令行界面中输入以下命令,按下回车执行:
在项目工程中,只需导入ERNIE Bot库即可,示例:
✍️ 初版设计在这里将文心大模型的能力封装成一个 def 方法,便于其他模块进行调用交互:
运行测试结果图
百度智能云的图像识别功能可以精准识别超过十万种物体和场景,包含10余项高精度的识图能力并提供相应的API服务,充分满足各类开发者和企业用户的应用需求。可以将这部分的代码直接放到项目工程中,作为一个新的文件存储,并在主代码模块中进行模块引用,或者也可以将其封装成独立的函数方法。
在这里,将图像识别模型能力封装成一个 def 方法,便于其他模块进行调用交互:
截止目前,已经形成一个较为完整的项目结构:
应用部署上线
创建项目
进入飞桨星河社区创建Notebook项目。
启动环境
点击启动环境后,选择合适的运行资源进入项目内。
上传文件
进入环境后,可以看到BML CodeLab界面,在左侧菜单栏,将项目相关的本地文件上传即可。
依赖安装
缺什么库安装什么即可。
1.新建启动页,打开终端页面
2.使用 pip 安装 ERNIE Bot:在命令行界面中输入以下命令,按下回车执行:
3.创建requirements.txt文件,便于后续应用部署使用,文件仅限输入依赖 erniebot 即可,若有多个依赖库可以换行输入。
创建应用Gradio
使用Gradio应用可以在线运行并预览,相比直接运行main.py会更方便的看到动态运行的效果。
应用部署
首次部署时,弹窗内选择“部署新应用”。
填写应用信息后,即可提交部署。
提交后可以在右下角看到部署的状态信息,成功后则可以进行体验了
心动不如行动看完本项目教程,你对「大模型摇摇乐」活动是不是更心动了?还不赶紧来参加!
👆点击图片了解活动详情
是不是厌倦了枯燥的开发生活,想来点新鲜刺激的事情?赶紧加入「大模型摇摇乐」活动吧!释放你的创意,摇出创意,摇出喜爱,摇出礼品!无论你是代码新手还是技术大咖,只要你对大语言模型充满好奇心,我们都欢迎你的加入!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。