【文心一言】使用飞桨 AI Studio 快速搭建,看图识猜成语应用

在这里插入图片描述

目录

  • 一、背景
  • 二、实践
  • 三、创建应用
    • 3.1、零代码开发
    • 3.2、应用名称
    • 3.2、模型训练
    • 3.3、开始训练
  • 四、应用部署
    • 4.1、发布项目
    • 4.2、搜索应用
    • 4.3、应用部署
    • 4.4、获取令牌
    • 4.4、导入依赖
    • 4.5、配置CORS
    • 4.6、使用测试API
    • 4.7、运行
    • 4.8、测试API接口
    • 4.9、前端API接口
  • 五、启动前端
    • 5.1、模块文件夹
    • 5.2、基础模块
    • 5.3、镜像源切换
    • 5.4、安装服务依赖
    • 5.5、启动前端
    • 5.6、修改环境配置
    • 5.7、运行效果
  • 六、完整代码
  • 七、总结

一、背景

在大模型时代,人人都能成为大模型开发者!
飞桨星河社区是百度飞桨和文心大模型的生态社区,为开发者和生态合作伙伴提供算力、模型、数据、工具链、社区交流等全方位服务。开发者可以通过星河社区提供的开发工具集ERNIE Bot SDK,调用领先的文心4.0大模型能力,高效开发高质量的文心一言应用,与飞桨和文心大模型生态共建、共创、共享。

二、实践

本次使用 飞桨 AI Studio 快速搭建,看图猜成语应用,实现思路如下:
1、体验零代码开发、创建AI绘画应用
2、部署自己训练的AI绘画模型,或者使用已经社区已经训练好得模型
3、搭建 Python、Node 运行环境
4、基于 Python Flask 进行看图猜成语应用的API开发
5、基于 Vue 构建看图猜成语应用

三、创建应用

3.1、零代码开发

打开应用页面,点击创建应用,创建零代码开发选项在这里插入图片描述

3.2、应用名称

博主这里得应用名称是【看图猜歌曲】,根据自己功能取对应的应用名称,然后应用类型选择AI绘画应用在这里插入图片描述

3.2、模型训练

1)基础模型
一般选择Stable Diffusion XL,质量会比较高
2)标记词
标记词输入仅限英文、数字、-、_ 并且需要在10个字符以内。
标记词用来标记训练数据内容,建议使用无意义的字符,无意义字符串更利于模型的训练效果,我的理解是不会相互冲突,独立在一个训练模型里
3)迭代步数
默认使用普通(1000)
模型训练的轮数越大,质量越高,相应的训练时间也越长。
4)学习率
默认使用适中(0.0001)
模型训练每一次迭代的步长,步长越大,收敛越快,步长越小,收敛越慢。
5)上传训练数据
数据集可以是特定的图像风格(梵高画风、新海诚等),也可以是特定的人物或物体,数据数量需要在10到30张。图片的背景尽量干净,如果是人物/物体,尽量使用统一的人物形象,如果是风格,尽量保证场景多样性,同时图片质量(分辨率)越高越好。在这里插入图片描述

3.3、开始训练

保存应用更改后,点击开始训练即可,这时会在右上角看到训练已经在排队中,可以点击查看详情浏览训练日志,训练时间在 20-50 分钟左右在这里插入图片描述
在这里插入图片描述

  • 应用构建成功
    在这里插入图片描述

四、应用部署

封装大模型API

4.1、发布项目

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

4.2、搜索应用

点应用页面,输入自己应用名称并点击跳转到体验页面
在这里插入图片描述
在这里插入图片描述

4.3、应用部署

点击生成画作,等几秒后生成,即可点击应用部署按钮
在这里插入图片描述
在这里插入图片描述

  • 服务运行成功如下
    在这里插入图片描述

4.4、获取令牌

可前往,https://aistudio.baidu.com/index/accessToken 查看访问令牌在这里插入图片描述

4.4、导入依赖

这里要特别注意token那里,记得是token+空格后才是字符串,否则会提示无权限。

import requests
from flask import Flask, request, jsonify
from flask_cors import CORS
import random

4.5、配置CORS

app = Flask(name)
CORS(app, resources={r"/": {"origins":""}}, send_wildcard=True)

4.6、使用测试API

app = Flask(name)
CORS(app, resources={r"/": {"origins":""}}, send_wildcard=True)

4.7、运行

完成上面代码后,即可运行python代码,会有如下链接,用于API接口访问。
每个人的环境和习惯不一样,博主python用的少,就通过下面方式启动,能运行起来就行。

& “C:/Program Files (x86)/Microsoft Visual Studio/Shared/Python39_64/python.exe” d:/svn/BaiduPython/feijiang_node20-master/app.py
在这里插入图片描述

  • 查看页面效果
    在这里插入图片描述
  • 终端也是能够监测有访问请求
    在这里插入图片描述

4.8、测试API接口

app.py因为已经配置了一个test的API接口路由,所以访问test路由返回如下信息说明调用成功在这里插入图片描述

4.9、前端API接口

@app.route('/image/generations', methods=['POST'])
def generation():
    data = request.json
    n = data.get('n')
    prompt = data.get('prompt')
    size = data.get('size')
    steps = data.get('steps')

    return query({
        'seed': random.randint(100000, 999999999),
        'n': n,
        'negative_prompt': '皮卡丘',
        'prompt': prompt,
        'size': size,
        'steps':steps
      })

五、启动前端

前端源码:https://gitee.com/TestsLing/feijiang_node20

5.1、模块文件夹

在安装过程中,可能会存在权限问题,需要以管理员权限运行cmd,并跳转到对应目录进行操作
确保对应目录下有安装模块文件夹和文件在这里插入图片描述
在这里插入图片描述

5.2、基础模块

npm install
安装过程中,会自动创建基础功能模块文件夹和文件在这里插入图片描述
在这里插入图片描述

5.3、镜像源切换

有时候网络速度问题,可能安装不成功,可以试下切换镜像源

npm config set registry https://registry.npm.taobao.org
升级版本
npm install -g npm
再安装
npm install @vue/cli-service

5.4、安装服务依赖

在目录下创建文本文档,requirement.txt,内容如下

requests
flask
flask_cors

  • 执行以下命令进行依赖安装

pip install -i https://pypi.douban.com/simple -r requirement.txt

5.5、启动前端

运行启动命令,直接在浏览器上输入下面地址

npm run serve
在这里插入图片描述

5.6、修改环境配置

打开环境配置文件,将地址改为API地址,就直接使用test那个路由。
然后重新运行下前端在这里插入图片描述

5.7、运行效果

在这里插入图片描述

六、完整代码

# -*- coding: utf-8 -*-

import requests
from flask import Flask, request, jsonify
from flask_cors import CORS
import random

app = Flask(__name__)
CORS(app, resources={r"/*": {"origins":"*"}}, send_wildcard=True)

API_URL = "https://ca13k4vfxd48w6sa.aistudio-hub.baidu.com/image/generations"
headers = {
    # 请前往 https://aistudio.baidu.com/index/accessToken 查看 访问令牌
    "Authorization": "token 您的at",
    "Content-Type": "application/json"
}


def query(payload):
    response = requests.post(API_URL, headers=headers, json=payload)
    return response.json()

@app.route('/')
def hello():
    return 'API应用已启动!'

@app.route('/test')
def test():
    return query({
        "prompt":"杰作,高品质,超精细,全细节,8k"
    })

@app.route('/image/generations', methods=['POST'])
def generation():
    data = request.json
    n = data.get('n')
    prompt = data.get('prompt')
    size = data.get('size')
    steps = data.get('steps')

    return query({
        'seed': random.randint(100000, 999999999),
        'n': n,
        'negative_prompt': '皮卡丘',
        'prompt': prompt,
        'size': size,
        'steps':steps
      })


if __name__ == '__main__':
    app.run(host='0.0.0.0')

七、总结

通过目标图片的训练,能够返回规定返回元素的背景图片,这样就能够逐渐转为我们自己垂直领域模型数据,并且能够快速构建和发布具有外网服务的API接口,我们只需要在自己属于的后端开发领域写好接口对接即可,然后处理好返回来的json数据,返回到目标前端。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/238880.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

百度文库下载要用券?Kotlin爬虫几步解决

百度作为国内知名的网站,尤其是文库里面有各种丰富的内容,对我们学习生活都有很大的帮助,就因为其内容丰富,如果看见好用有意思的文章还用复制粘贴等方式就显得有点落后了,今天我将用我所学的爬虫知识给你们好好上一课…

git 相关操作说明

1.先下载git相关软件 下载地址: https://git-scm.com/download/win下载其中一个安装 2.打开gitee网站,注册账号 3.打开个人中心,选择ssh公钥,查看如何生成公钥 4.生成公钥后,添加相应的公钥 具体仓库操作 1.第一…

Java二十一章 网络通信

1 网络程序设计基础 网络程序设计编写的是与其他计算机进行通信的程序。 局域网与互联网 服务器是指提供信息的计算机或程序,客户机是指请求信息的计算机或程序。网络用于连接服务器与客户机,实现两者间的相互通信。 网络协议 网络协议规定了计算机…

数字孪生的项目类型

数字孪生是一种通过数字模型对实际系统、产品或过程进行实时仿真和监测的技术。它可以在虚拟环境中模拟和反映现实世界中的物理对象、系统或过程。数字孪生技术有广泛的应用领域,以下是一些数字孪生可以涉及的项目类型,希望对大家有所帮助。北京木奇移动…

STM32储存器和总线构架

一、引言 本篇文章旨在介绍STM32小容量、中容量和大容量的储存器和系统构架,文中涉及到一些专有名词和概念较为抽象和陌生,建议读者能够查阅相关资料和知识加深了解。 二、正文 (一)、系统构架 在小容量、中容量和 大容量产品中…

犹豫不决先排序,步步紧逼双指针---力扣刷题

目录 第一题:和为s的两个数 第二题:和为0的三个数 第三题:四数之和 第一题:和为s的两个数 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 思路: 法一先想到暴力枚举,即利用…

GoEasy使用手册

GoEasy官网 登录 - GoEasy 即时通讯聊天案例 GoEasy - GoEasy (gitee.com) 注意事项 接口使用人数上限为15,超出之后会请求超时返回408状态码,可以新建一个应用用来更换common Key 创建应用 ​ 添加应用名称,其余默认,点击…

Java - JVM内存模型及GC(垃圾回收)机制

JVM内存模型 JVM堆内存划分(JDK1.8以前) JVM堆内存划分(JDK1.8之后) 主要变化在于: java8没有了永久代(虚拟内存),替换为了元空间(本地内存)。常量池&#…

电影《三大队》观后感

上周点播看了电影《三大队》,这部电影讲述的是三大队警员,在办案过程中,因为把犯罪嫌疑人打死后,锒铛入狱后,后来出来后,再次抓捕犯罪嫌疑人的故事。 (1)故事情节 有一次&#xff0c…

无mac在线申请hbuilderx打包ios证书的方法

hbuilderx是一个跨平台的开发工具,可以开发android和ios的app应用。打包hbuilderx应用需要hbuilderx打包证书。但是很多使用hbuilderx开发的程序员,并没有mac电脑,而申请ios的证书,hbuilderx官网的教程却是需要mac电脑的&#xff…

cache教程 2.单机并发缓存

0.对原教程的一些见解 个人认为原教程中两点知识的引入不够友好。 首先是只读数据结构 ByteView 的引入使用是有点迷茫的,可能不能很好理解为什么需要ByteView。 第二是主体结构 Group的引入也疑惑。其实要是熟悉groupcache,那对结构Group的使用是清晰…

版本控制:让你的代码有迹可循

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

viple与物理机器人(一):线控模拟

为了检测viple程序与物理机器人是否能顺利连接上 如果能顺利连接上,那么,可以通过内建事件从而控制物理机器人的前进、后退、左转、右转以及暂停。 如果不能连接上,首先,程序无法控制物理机器人,其次,当vip…

c++STL使用时的迭代器失效问题

迭代器失效本质上有两种情况: 一是pos的意义变了(指向的位置不是想要指向位置),二是pos变成了野指针(使用了一块已经被释放了的空间)。 迭代器失效会导致程序出现莫名其妙的越界访问、编译报错和获取的位置…

计算机网络:应用层(一)

我最近开了几个专栏,诚信互三! > |||《算法专栏》::刷题教程来自网站《代码随想录》。||| > |||《C专栏》::记录我学习C的经历,看完你一定会有收获。||| > |||《Linux专栏》&#xff1…

uniapp,点击选中并改变颜色,第二次点击取消选中状态

一、效果图 二、代码实现 字符串的indexOf和数组的indexOf用法一致! arr.indexOf(item) 该方法返回某个元素在数组中的位置。若没检索到,则返回 -1。 关键代码:(通过:class绑定) :class"selectList.indexOf(sub.type) ! -1 ? right_ite…

Linux Zabbix企业级监控平台本地部署并实现远程访问

前言 Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 本地zabbix web管理界面限制在只能局域…

SD-WAN跨国网络加速的原理

许多企业需要在全球范围内高效传输和交流数据,然而,跨国网络连接面临着多种挑战,如网络延迟、拥塞和数据包丢失,这些问题可能会显著降低企业的运作效率和客户体验。为了克服这些问题,越来越多的企业正在采用SD-WAN跨国…

android悬浮窗气泡点击穿透事件

一个小众功能记录:新增气泡,拖动气泡,点击气泡事件传递到下层 文章底部附上demo 效果: 1、新建一个service,都在这里面实现 左侧悬浮窗: private void setFloatWinow() {floatingView LayoutInflater.…

第二证券:结构性行情或将延续 泛科技有望继续走强

展望未来,当时已进入重要的方针窗口期,能否有超预期的新方针推出是改变商场的要害。但复盘2023年的行情来看,过早买卖方针预期的成功率并不高,因而主张该方位以防御性资产为主,高股息资产从本年9月份至今现已调整了2个…