Gradio测试-->Gradio映射-->可视化GPT4V API-->Gemini Pro、Claude和Qwen的API

2024-03-14 02:28

本文主要是介绍Gradio测试-->Gradio映射-->可视化GPT4V API-->Gemini Pro、Claude和Qwen的API,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Gradio测试

import gradio as gr
import timedef demo_test(text, image=None):time.sleep(1)  # 正确的暂停调用return text, image if image is not None else None# 创建 Gradio 接口
iface = gr.Interface(fn=demo_test,inputs=[gr.Textbox(label="输入文本"), gr.Image(type="pil", label="上传图片")],outputs=[gr.Textbox(label="输出文本"), gr.Image(type="pil", label="输出图片")]
)iface.launch(server_name="0.0.0.0", server_port=1234)

Gradio映射

本地机器运行:
-L:指定远程机器端口是1234,本地机器的端口号的8888。
用户名:远程机器的用户名
ip地址:远程机器的IP地址

ssh -CNg -L localhost:8888:0.0.0.0:1234  用户名@ip地址 -p PID

Gradio可视化GPT4V API

1. GPT4V

注意:需要设置代理端口

import gradio as gr
import requests
import os
import base64
import io# 设置代理,以确保能够连接到 API
# os.environ["http_proxy"] = "127.0.0.1:58591"
# os.environ["https_proxy"] = "127.0.0.1:58591"# 你的 OpenAI API 密钥
api_key = "sk-"# 函数:将 PIL 图像对象编码为 base64 格式
def encode_image(image):if image is None:return None  # 如果没有图片,则返回 Nonebuffered = io.BytesIO()try:image.save(buffered, format="JPEG")img_str = base64.b64encode(buffered.getvalue()).decode('utf-8')return img_strexcept Exception as e:print(f"编码图像时出错: {e}")return None# 函数:处理 GPT-4 API 请求
def demo_test(text, image=None):message_content = [{"type": "text", "text": text}]if image is not None:base64_image = encode_image(image)if base64_image is not None:message_content.append({"type": "image_url","image_url": {"url": f"data:image/jpeg;base64,{base64_image}"}})headers = {"Content-Type": "application/json","Authorization": f"Bearer {api_key}"}payload = {"model": "gpt-4-vision-preview","messages": [{"role": "user", "content": message_content}],"max_tokens": 3000}response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)response_text = response.json()["choices"][0]["message"]["content"] if response.ok else "处理请求时出错"print(response_text)return response_text, image if image is not None else None# 创建 Gradio 接口
iface = gr.Interface(fn=demo_test,inputs=[gr.Textbox(label="输入文本"), gr.Image(type="pil", label="上传图片")],outputs=[gr.Textbox(label="输出文本"), gr.Image(type="pil", label="输出图片")]
)iface.launch()

Gemini Pro、Claude和Qwen的API

1. Gemini Pro

# setup
import google.generativeai as genaigenai.configure(api_key='')  # 填入自己的api_key# 查询模型
for m in genai.list_models():print(m.name)print(m.supported_generation_methods)
import PIL.Image
import os
# 创建模型实例
model = genai.GenerativeModel('gemini-pro-vision')
# 文件夹路径
folder_path = ''# 结果文件
results_file = ''count =0# 遍历文件夹中的图像
for filename in os.listdir(folder_path):if filename.endswith('.jpg') or filename.endswith('.png'):  # 检查文件是否为图像# 图像路径image_path = os.path.join(folder_path, filename)img = PIL.Image.open(image_path)# 使用模型进行提问question = "描述一下这张图像"response = model.generate_content([question, img], stream=True)response.resolve()# 将结果写入文件with open(results_file, 'a') as file:file.write(f"{filename} {response.text}\n")# 更新计数器count += 1# 每处理100张图像打印一次if count % 5 == 0:print(f"已处理 {count} 张图像")print("处理完成!")

2. Claude

2.1 注册

  1. 注册可以免费使用chat网页版
  2. 5刀Claude 3 Opus使用额度
    支付宝购买虚拟手机卡:https://sms-man.com/cn

2.2 API

3.Qwen

import os# 设置环境变量
os.environ['DASHSCOPE_API_KEY'] = 'sk-'# 之后您可以使用这个环境变量
api_key = os.environ['DASHSCOPE_API_KEY']from dashscope import MultiModalConversationdef call_with_local_file():"""Sample of use local file.linux&mac file schema: file:///home/images/test.pngwindows file schema: file://D:/images/abc.png"""local_file_path1 = 'file:///opt/data/private/434103892.jpg'messages = [{'role': 'system','content': [{'text': 'You are a helpful assistant.'}]}, {'role':'user','content': [{'image': local_file_path1},{'text': '图片里有什么东西?'},]}]response = MultiModalConversation.call(model='qwen-vl-max', messages=messages)# print(response)text_content = response['output']['choices'][0]['message']['content'][0]['text']print(text_content)if __name__ == '__main__':call_with_local_file()

这篇关于Gradio测试-->Gradio映射-->可视化GPT4V API-->Gemini Pro、Claude和Qwen的API的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

Python 交互式可视化的利器Bokeh的使用

《Python交互式可视化的利器Bokeh的使用》Bokeh是一个专注于Web端交互式数据可视化的Python库,本文主要介绍了Python交互式可视化的利器Bokeh的使用,具有一定的参考价值,感... 目录1. Bokeh 简介1.1 为什么选择 Bokeh1.2 安装与环境配置2. Bokeh 基础2

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

resultMap如何处理复杂映射问题

《resultMap如何处理复杂映射问题》:本文主要介绍resultMap如何处理复杂映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录resultMap复杂映射问题Ⅰ 多对一查询:学生——老师Ⅱ 一对多查询:老师——学生总结resultMap复杂映射问题

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应