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

相关文章

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

Java继承映射的三种使用方法示例

《Java继承映射的三种使用方法示例》继承在Java中扮演着重要的角色,它允许我们创建一个类(子类),该类继承另一个类(父类)的所有属性和方法,:本文主要介绍Java继承映射的三种使用方法示例,需... 目录前言一、单表继承(Single Table Inheritance)1-1、原理1-2、使用方法1-

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现