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

news2024/11/18 7:29:56

在这里插入图片描述

目录

  • 一、背景
  • 二、实践
  • 三、创建应用
    • 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数据,返回到目标前端。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

读书笔记 | 自我管理的关键是提高执行力

哈喽啊,你好,我是雷工! 有句话说,能管好自己才是真的本事。 自我管理,管好自己很重要。 我们之所以懂得这么多的道理,却依然过不好这一生? 很大部分原因是因为管不住自己,做不到。 …

UART设备

UART简介 UART(Universal Asynchronous Receiver/Transmitter)通用异步收发传输器,UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。 是在应用程序开发过程中使用频率最高的数据总线。 UART串…

linux7安装redis7.2.3以及使用ssh方式远程连接redis教程

1.下载redis.tar.gz包 地址:Download | Redis 2. 上传到linux服并解压 cd /home/local tar -zxvf redis-7.2.3.tar.gz 3.编译并设置安装目录 安装前先安装python3:linux7安装python3.12.1教程-CSDN博客 yum install gcc-c # 安装编译所需环境 cd redi…

stm32学习:DHT11+0.96寸oled屏

目录 材料 接线 步骤 stm32clube配置 配置gpio口 配置IIC,OLED 生成项目 打开项目编辑 加入dht11和oled文件到项目中 将.c文件加入到项目中,然后编译 修改main代码 烧录后就会在oled上出现温湿度 注意 材料 stmf103c8t6dht11oled(IIC&…

智能外呼是什么意思?智能外呼的工作原理是什么?

智能外呼是什么意思? 智能外呼是指利用人工智能技术实现对电话外呼的优化和自动化,以提高外呼效率和质量。智能外呼可以根据客户的需求和行为进行智能化的拨号、语音识别、语音合成、自动化问答等操作,从而实现更高效、更准确的客户沟通和营…

低代码(low code)开发平台,我选JNPF

近年来,低代码开发技术正以迅猛的步伐崭露头角,成为数字化转型浪潮下的重要工具。据 Gartner 预测,到 2025 年,低代码技术将占据 70% 的新应用开发份额,引领着企业应用开发的新趋势。然而,随之而来的是市场…

基于ssm技术的车库智能管理平台论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本车库智能管理平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

全局代理IP的工作原理和实现方法

目录 前言 一、全局代理IP的工作原理 1.代理服务器 2.代理协议 二、全局代理IP的实现方法 1.构建代理服务器 2.实现数据转发 3.使用代理服务器 4.启动代理服务器 三、全局代理IP的代码实现 四、总结 前言 在网络中,代理服务器是一种获取网络资源的方式。…

Mysql 1366 Incorrect string value:不正确的字符串值(编码格式)

文章目录 1 解决办法1.1 修改当前表的字符编码:仅对当前表有效1.2 修改数据库的字符编码:对所有表有效1.3 建议:创建数据库时指定字符编码 2 原因分析3 错误演示4 扩展4.1 查看 Mysql 版本4.2 查看数据库的字符编码4.3 查看表的字符编码 1 解…

HNU计算机体系结构-实验3:多cache一致性算法

文章目录 实验3 多cache一致性算法一、实验目的二、实验说明三 实验内容1、cache一致性算法-监听法模拟2、cache一致性算法-目录法模拟 四、思考题五、实验总结 实验3 多cache一致性算法 一、实验目的 熟悉cache一致性模拟器(监听法和目录法)的使用&am…

Java中的IO流③——转换流、序列化流、反序列化流、打印流

目录 转换流 代码演示 总结 序列化流&反序列化流 序列化流 构造和成员方法 细节 代码演示 反序列化流 代码演示 序列化流和反序列化流细节 综合练习 打印流 字节打印流 代码演示 字符打印流 代码演示 总结 转换流 转换流可以将字节流转成字符流&#xff0…

每日一博 - 图解5种Cache策略

文章目录 概述读策略Cache AsideRead Through 写策略Write ThroughWrite AroundWrite Back 使用场景举例 概述 缓存是在系统中存储数据的临时存储器,用于提高访问速度。缓存策略定义了如何在缓存和主存之间管理数据 读策略 Read data from the system: &#x1f5…

Kalman滤波、扩展Kalman滤波、无迹Kalman滤波和异步滤波的原理及其Matlab代码

目录 引言Kalman滤波代码及其结果展示 扩展Kalman滤波代码及其结果展示 无迹Kalman滤波无迹变换无迹Kalman滤波代码及其结果展示 异步无迹Kalman滤波原理代码及其结果展示 引言 本文给出了Kalman Filter(卡尔曼滤波)、Extended Kalman Filter&#xff0…

八、SSRF服务器端请求伪造漏洞

一、SSRF漏洞介绍 SSRF:全称Server-side Request Fogery(服务器端请求伪造漏洞),其是攻击者绕过网站的一些过滤,访问或或攻击或控制了一些本不应该访问或接触的内容(拿外网主机当跳板机去窥探内网) 二、SSRF漏洞发现 简单例子①&#xff1…

算法通关村第八关—二叉树的经典算法题(青铜)

二叉树的经典算法题 一、二叉树里的双指针 双指针就是定义了两个变量,在二叉树中有时候也需要至少定义两个变量才能解决问题,这两个指针可能针对一棵树,也可能针对两棵树,姑且也称之为“双指针”吧。一般是与对称、反转和合并等类…

6-6 计算最长的字符串长度

本题要求实现一个函数,用于计算有n个元素的指针数组s中最长的字符串的长度。 函数接口定义: int max_len( char *s[], int n ); 其中n个字符串存储在s[]中,函数max_len应返回其中最长字符串的长度。 裁判测试程序样例: #incl…

algorithm graphics

绘制地图坐标路线_哔哩哔哩_bilibili neo4j test-CSDN博客

【Angular开发】Angular 16发布:发现前7大功能

Angular 于2023年5月3日发布了主要版本升级版Angular 16。作为一名Angular开发人员,我发现这次升级很有趣,因为与以前的版本相比有一些显著的改进。 因此,在本文中,我将讨论Angular 16的前7个特性,以便您更好地理解。…

关于 SAP S/4HANA 中的控制您应该了解什么-Part1

原文地址:What you should know about controlling in SAP S/4HANA. (Part 1) | SAP Blogs (自 SAP S/4HANA 版本 1909 起更新) 作为一名CO顾问,我对 SAP ERP 中央组件 (ECC) 向 SAP S/4HANA 的演变感到非常兴奋。 自从第一个版…

13.触发器

目录 1、创建触发器 1、创建只有一个执行语句的触发器 2、创建有多个执行语句的触发器 2、查看触发器 1、通过SHOW TRIGGERS查看触发器: 2.在triggers 表中查看触发器信息 3、使用触发器 4、删除触发器 1、创建触发器 MySQL 的触发器和存储过程一样,都是嵌…