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

相关文章

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

Python实现数据可视化图表生成(适合新手入门)

《Python实现数据可视化图表生成(适合新手入门)》在数据科学和数据分析的新时代,高效、直观的数据可视化工具显得尤为重要,下面:本文主要介绍Python实现数据可视化图表生成的相关资料,文中通过... 目录前言为什么需要数据可视化准备工作基本图表绘制折线图柱状图散点图使用Seaborn创建高级图表箱线图热

Python用Flask封装API及调用详解

《Python用Flask封装API及调用详解》本文介绍Flask的优势(轻量、灵活、易扩展),对比GET/POST表单/JSON请求方式,涵盖错误处理、开发建议及生产环境部署注意事项... 目录一、Flask的优势一、基础设置二、GET请求方式服务端代码客户端调用三、POST表单方式服务端代码客户端调用四

SpringBoot结合Knife4j进行API分组授权管理配置详解

《SpringBoot结合Knife4j进行API分组授权管理配置详解》在现代的微服务架构中,API文档和授权管理是不可或缺的一部分,本文将介绍如何在SpringBoot应用中集成Knife4j,并进... 目录环境准备配置 Swagger配置 Swagger OpenAPI自定义 Swagger UI 底

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

升级至三频BE12000! 华硕ROG魔盒Pro路由器首发拆解评测

《升级至三频BE12000!华硕ROG魔盒Pro路由器首发拆解评测》华硕前两天推出新一代电竞无线路由器——ROG魔盒Pro(StrixGR7Pro),该产品在无线规格、硬件配置及功能设计上实现全... 作为路由器行业的T1梯队厂商,华硕近期发布了新旗舰华硕ROG魔盒Pro,除了保留DIY属性以外,高达120