手把手带你用Python和文心一言搭建《AI看图写诗》网页项目(附上完整项目源码)

本文主要是介绍手把手带你用Python和文心一言搭建《AI看图写诗》网页项目(附上完整项目源码),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今年年初,ChatGPT的火爆在全球掀起AI大模型的开发热潮,国内外的科技公司纷纷加入“百模大战”行列。百度在率先发布了国内第一款人工智能大语言模型“文心一言”后,又推出了文心千帆大模型平台,帮助企业和开发者加速大模型应用落地。

而最近百度创始人、董事长兼首席执行官李彦宏在一场活动上透露了百度世界大会2023的重磅消息,他将在10月17号百度世界大会召开的时候,“手把手教你怎么做AI原生应用”。

我自己也突发奇想用文心一言搭建一个AI小应用:《看图写诗》,说干就干,接下来就跟着博主一起实现这个网页吧!


文章目录

  • 一、实现思路
  • 二、《AI看图写诗》网页搭建实现步骤
    • 2.1 网页前端
    • 2.2 图像识别
      • 2.2.1 安装百度智能云Python SDK
      • 2.2.2 创建应用
      • 2.2.3 Python代码测试
    • 2.3 文心一言写诗
      • 2.3.1 安装ERNIE Bot SDK
      • 2.3.2 获取令牌Token
      • 2.3.3 Python代码测试
    • 2.4 网页后端
    • 2.5 完整项目拷贝
    • 2.6 项目运行步骤
    • 2.7 运行流程视频
  • 三、未来优化
  • 四、总结

一、实现思路

1、设计一款网页实现接受上传图片和接收文心一言令牌Token功能

2、Python调用百度智能云的图片识别接口,识别图片类别和内容

3、Python调用文心一言接口,输入图片类别,通过文心一言写诗

4、Python后端将诗返回到网页上

二、《AI看图写诗》网页搭建实现步骤

2.1 网页前端

网页前端采用HTML+CSS+JavaScript技术,实现了上传图片、展示图片,传入百度智能云AppId、百度智能云API Key、百度智能云Secret Key、飞浆星河Access Token和点击写诗功能,界面如下:

2.2 图像识别

百度智能图像识别接口是百度提供的一项人工智能服务,能够对图片进行高精度的内容识别,该接口支持多种图像识别任务,包括通用物体识别、场景识别、文字识别、动物识别等,这里我们通过Python直接调用免费的通用物体识别图像识别接口,极大的提高了开发工作的效率。

2.2.1 安装百度智能云Python SDK

可以通过pip安装百度智能云Python SDK。在终端下输入以下命令:

pip install baidu-aip 

安装完毕后,你就可以在Python代码中导入该包了:

from aip import AipImageClassify

2.2.2 创建应用

1、登录百度智能云的官网:https://console.bce.baidu.com

2、依次找到点击 产品 》人工智能 》图像识别

3、登录控制台后点击免费尝鲜:

4、勾选全部然后点击0元领取:

5、创建成功后,点击应用进入应用详情页,进入应用管理菜单,点击API Key,可查看API Key和Secret Key,用于Python代码调用API。

在这里插入图片描述

2.2.3 Python代码测试

经过以上两步准备工作,我们便可以开始编写Python代码,实现百度智能图片识别。以下是一个简单的测试示例,需要修改AppId 、API Key、Secret Key和图片路径:

from aip import AipImageClassify# 定义百度智能云API的参数
APP_ID = '你的API ID'
API_KEY = '你的API Key'
SECRET_KEY = '你的 Secret Key'# 实例化AipImageClassify
client = AipImageClassify(APP_ID, API_KEY, SECRET_KEY)# 读取并设置图片路径
filePath = "1.png"# 打开图片文件
with open(filePath, 'rb') as fp:image = fp.read()# 定义可选参数
options = {"baike_num": 1}# 调用图片标签识别接口
result = client.advancedGeneral(image, options)# 输出结果
for res in result['result']:print(res['keyword'], end=", ")

我输出图片是这张风景图,没有文字还是很有挑战的:

识别效果,图片上的信息都给识别出来了:

在这里插入图片描述

接下来我们就需要把识别出来的图像内容传给文心一言写诗了。

2.3 文心一言写诗

这里我是通过ERNIE Bot SDK提供便捷易用的接口,可以调用文心一言的能力,包含文本创作、通用对话、语义向量、Al作图等,并且可以免费调用100万Token:

2.3.1 安装ERNIE Bot SDK

ERNIE Bot SDK是文心&飞桨官方提供的Python软件开发工具包,简称EB SDK,通过下面的pip命令安装:

pip install erniebot

EB SDK认证鉴权主要是设置后端和access token,分别通过api_type和access_token参数来指定,默认使用aistudio后端(api_type为aistudio),将个人中心令牌Token,复制后填入下面代码中即可(替换{YOUR-ACCESS-TOKEN}):

2.3.2 获取令牌Token

1、打开飞浆星河社区的官网:https://aistudio.baidu.com/cooperate/erniebotsdk

2、注册完账号后,点击查看:

3、获取自己的Token令牌并复制,后面我们用Python去调用接口会使用到:

2.3.3 Python代码测试

下面我们来单独测试一下通过ERNIE Bot SDK调用文心一言接口写诗的能力,完整代码如下(只需要替换为自己的Token):

import erniebotif __name__ == '__main__':# img_str,access_token需要传入img_str = '树, 瀑布, 江河, 峡谷, 山峦' # 这里需要图片识别的内容信息access_token = "这里替换为自己的TOken"content = '根据'+img_str,'写10首两句七言诗'erniebot.api_type = 'aistudio'erniebot.access_token = access_tokenresponse = erniebot.ChatCompletion.create(model='ernie-bot',messages=[{'role': 'user', 'content': f"{content}”"}],)print(response.result)

运行输出结果还是非常不错的:

在这里插入图片描述

接下来就只需要将生成的诗句传递给网页端展示出来就可以啦。

2.4 网页后端

使用到了下面两个Python库,执行pip命令安装一下:

pip install fastapi
pip install pydantic

网页后端实现接收前端传入的图片和令牌,然后调用百度智能云的图片识别接口和文心一言大模型接口,然后将生成的诗句返回给网页前端的功能,后端代码如下:

from fastapi import FastAPI, File, Form, UploadFile
from pydantic import BaseModel
from fastapi.middleware.cors import CORSMiddleware
import erniebot
from aip import AipImageClassifyapp = FastAPI()
origins = ["http://localhost.tiangolo.com","https://localhost.tiangolo.com","http://localhost","http://localhost:8000","http://localhost:63342",# "http://127.0.0.1:8000"
]
app.add_middleware(CORSMiddleware,allow_origins=origins,allow_credentials=True,allow_methods=["*"],allow_headers=["*"],
)
class PoeSimpleReq(BaseModel):access_token: strapp_id: strapi_key: strclassify_secret_key: strfile: bytes = File(default=None)@app.post("/poe")
async def read_root(access_token: str = Form(), app_id: str = Form(), api_key: str = Form(),classify_secret_key: str = Form(), image: UploadFile = File()):if access_token is None or app_id is None or api_key is None or classify_secret_key is None or classify_secret_key is None or image is None:return "Supplementary information on the left"access_token = access_tokenAPP_ID = app_idAPI_KEY = api_keyCLASSIFY_SECRET_KEY = classify_secret_keyclient = AipImageClassify(APP_ID, API_KEY, CLASSIFY_SECRET_KEY)# 定义可选参数options = {"baike_num": 5}# 调用图片标签识别接口result = client.advancedGeneral(image.file.read(), options)print("pic result:", result)keyword_list = []for res in result['result']:keyword_list.append(res['keyword'])keyword_string = ', '.join(keyword_list)content = '根据' + keyword_string + '写10首两句七言诗'erniebot.api_type = 'aistudio'erniebot.access_token = access_tokenresponse = erniebot.ChatCompletion.create(model='ernie-bot',messages=[{'role': 'user', 'content': f"{content}”"}],)data_str = response.resultreturn data_str.replace("\n", "  ")

2.5 完整项目拷贝

博主已经将这个项目的完整源码上传到Gitee上开源,小伙伴们可以自行下载和修改项目:
https://gitee.com/xiaoyuan-itsuper/AI.git

2.6 项目运行步骤

1、根据上面教程提前准备好百度智能云AppId、百度智能云API Key、百度智能云Secret Key、飞浆星河Access Token

2、下载拷贝完整源码,创建虚拟环境,pip安装依赖包

3、进入源码路径,启动对应虚拟环境,在cmd输入下面命令启动代码:

uvicorn main:app --reload

如图:

在这里插入图片描述

4、点击打开网页:

5、打开主界面如下所示:

6、点击选择图片,并展示图片:

7、填写根据上面教程准备好的百度智能云AppId、百度智能云API Key、百度智能云Secret Key、飞浆星河Access Token(注意:这个四个都需要填写):

8、点击生成诗句:

在这里插入图片描述

9、等待一会就生成完成了:

在这里插入图片描述

OK这里完整项目运行流程就结束了,大家还不速度上号体验一番!

2.7 运行流程视频

《AI看图写诗》项目运行流程

三、未来优化

1、网页主页界面UI设计优化。

2、增强新功能,如:通过文心一言的接口实现根据文字绘画、文档整理等功能。

3、网站部署上线

大家有更好多想法可以评论区留言我们一起去实现!

四、总结

通过这小案例我们了解到了如何通过AI实现了看图写诗应用,主要依靠的还是百度智能云的图片识别接口和文心一言大模型的文本生成能力,当然除了文本生成以外,文心一言大模型还可以生成图片、音频和视频功能等等,这些非常都值得我们后续不断去探索和应用。

以“生成未来”为主题的百度世界大会将于10月17日在北京首钢园举行,除了李彦宏的现场教学“手把手教你怎么做AI原生应用”,百度世界大会2023还将带来大模型、AI原生应用、生成式AI生态等内容的最新进展。让我们一起抓住大模型应用这场机遇吧!

直播地址分享给大家:https://baiduworld.baidu.com/m/world/2023/#intro-title

这篇关于手把手带你用Python和文心一言搭建《AI看图写诗》网页项目(附上完整项目源码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

揭秘未来艺术:AI绘画工具全面介绍

📑前言 随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。在艺术创作领域,AI技术同样展现出了其独特的魅力。今天,我们就来一起探索这个神秘而引人入胜的领域,深入了解AI绘画工具的奥秘及其为艺术创作带来的革命性变革。 一、AI绘画工具的崛起 1.1 颠覆传统绘画模式 在过去,绘画是艺术家们通过手中的画笔,蘸取颜料,在画布上自由挥洒的创造性过程。然而,随着AI绘画工

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

用Microsoft.Extensions.Hosting 管理WPF项目.

首先引入必要的包: <ItemGroup><PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" /><PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" /><PackageReference Include="Serilog

AI儿童绘本创作

之前分享过AI儿童绘画的项目,但是主要问题是角色一致要花费很长的时间! 今天发现了这款,非常奈斯! 只需输入故事主题、风格、模板,软件就会自动创作故事内容,自动生成插画配图,自动根据模板生成成品,测试效果如下图。 变现方式:生成儿童绘本发布到各平台,吸引宝妈群体进私域。  百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全

eclipse运行springboot项目,找不到主类

解决办法尝试了很多种,下载sts压缩包行不通。最后解决办法如图: help--->Eclipse Marketplace--->Popular--->找到Spring Tools 3---->Installed。

Python 字符串占位

在Python中,可以使用字符串的格式化方法来实现字符串的占位。常见的方法有百分号操作符 % 以及 str.format() 方法 百分号操作符 % name = "张三"age = 20message = "我叫%s,今年%d岁。" % (name, age)print(message) # 我叫张三,今年20岁。 str.format() 方法 name = "张三"age

问题-windows-VPN不正确关闭导致网页打不开

为什么会发生这类事情呢? 主要原因是关机之前vpn没有关掉导致的。 至于为什么没关掉vpn会导致网页打不开,我猜测是因为vpn建立的链接没被更改。 正确关掉vpn的时候,会把ip链接断掉,如果你不正确关掉,ip链接没有断掉,此时你vpn又是没启动的,没有域名解析,所以就打不开网站。 你可以在打不开网页的时候,把vpn打开,你会发现网络又可以登录了。 方法一 注意:方法一虽然方便,但是可能会有

vue项目集成CanvasEditor实现Word在线编辑器

CanvasEditor实现Word在线编辑器 官网文档:https://hufe.club/canvas-editor-docs/guide/schema.html 源码地址:https://github.com/Hufe921/canvas-editor 前提声明: 由于CanvasEditor目前不支持vue、react 等框架开箱即用版,所以需要我们去Git下载源码,拿到其中两个主

React+TS前台项目实战(十七)-- 全局常用组件Dropdown封装

文章目录 前言Dropdown组件1. 功能分析2. 代码+详细注释3. 使用方式4. 效果展示 总结 前言 今天这篇主要讲全局Dropdown组件封装,可根据UI设计师要求自定义修改。 Dropdown组件 1. 功能分析 (1)通过position属性,可以控制下拉选项的位置 (2)通过传入width属性, 可以自定义下拉选项的宽度 (3)通过传入classN

Android我的二维码扫描功能发展史(完整)

最近在研究下二维码扫描功能,跟据从网上查阅的资料到自己勉强已实现扫描功能来一一介绍我的二维码扫描功能实现的发展历程: 首页通过网络搜索发现做android二维码扫描功能看去都是基于google的ZXing项目开发。 2、搜索怎么使用ZXing实现自己的二维码扫描:从网上下载ZXing-2.2.zip以及core-2.2-source.jar文件,分别解压两个文件。然后把.jar解压出来的整个c