Python入门项目用20行代码调用Ostrakon-VL-8B给图片写首诗1. 引言你有没有想过让电脑看懂一张图片然后为它写一首诗这听起来像是科幻电影里的情节但现在你只需要一点Python基础就能亲手实现它。今天这个项目就是带你用不到20行的Python代码做一个特别有意思的小工具。你给它一张你拍的照片或者网上找的风景图它就能调用一个叫Ostrakon-VL-8B的模型理解图片里的内容然后生成一首符合意境的短诗。整个过程就像是在和AI进行一次关于美的对话。对于刚开始学Python的朋友来说这个项目有几个特别好的地方。第一它用到的都是最基础的库比如requests和PIL没有复杂的依赖。第二代码量非常少逻辑清晰你能很快看到成果获得正反馈。第三它把枯燥的API调用变成了一个有趣的创作过程让你直观感受到AI的能力。做完这个项目你不仅学会了如何用Python处理图片和调用网络服务还能收获一份独一无二的“AI诗作”成就感满满。2. 项目准备认识你的工具在开始写代码之前我们先花几分钟了解一下需要用到的几个“工具”。别担心它们都非常简单。2.1 Python环境首先确保你的电脑上已经安装了Python。打开你的命令行Windows上是CMD或PowerShellMac或Linux上是终端输入python --version或者python3 --version。如果能看到像Python 3.8.10这样的版本号那就没问题了。建议使用Python 3.6或更高的版本。如果还没安装可以去Python官网下载安装过程很简单。2.2 两个核心的Python库我们这个项目主要依赖两个库requests这是Python里用来发送网络请求的“瑞士军刀”。你可以把它想象成一个邮差我们的代码写好“信”请求它负责把信送到指定的服务器API再把服务器的“回信”响应带回来。我们就是用它来和Ostrakon-VL-8B模型对话的。Pillow(PIL)这是一个专门用来处理图片的库。它的前身是PILPython Imaging Library现在叫Pillow但导入时我们还是用PIL这个名字。它的任务就是帮我们打开电脑里的图片文件并做一些简单的处理比如调整大小、转换格式好让模型能“看懂”。2.3 安装它们安装这两个库只需要一行命令。打开你的命令行输入下面的命令并回车pip install requests pillow如果系统提示权限问题可以试试pip install --user requests pillow。看到“Successfully installed”的字样就说明工具都准备好了。3. 核心步骤让AI看图说话工具齐备我们来一步步拆解这个项目的核心逻辑。整个过程就像一条清晰的流水线准备图片 - 发送给AI - 接收并展示诗歌3.1 第一步用Pillow打开你的图片首先我们需要告诉程序要处理哪张图片。假设你有一张名为my_picture.jpg的图片放在和你的Python脚本同一个文件夹里。我们用Pillow里的Image模块来打开它from PIL import Image # 打开图片文件 image_path my_picture.jpg image Image.open(image_path)这里image变量就代表了你打开的那张图片。你可以把my_picture.jpg换成你电脑上任何图片的路径比如C:/Users/你的名字/Pictures/sunset.png。Pillow支持JPG、PNG等多种常见格式。3.2 第二步把图片“打包”好准备发送模型API不能直接接收一个Image对象它需要一种特定的格式。通常我们需要把图片转换成Base64编码的字符串。这听起来有点技术但你可以把它理解为把图片的二进制数据“翻译”成一段纯文本这样就能通过网络轻松传输了。同时我们还需要准备一段“提示词”Prompt来告诉模型我们想要它做什么。对于这个项目提示词很简单就是“请根据这张图片的意境生成一首短诗。”3.3 第三步通过requests发送请求这是最关键的一步我们要和远端的Ostrakon-VL-8B模型建立连接。我们需要知道它的“地址”API端点和“沟通方式”。假设模型的API地址是https://api.example.com/v1/chat/completions请注意这是一个示例地址实际使用时需要替换为真实可用的API端点。我们需要构造一个符合API要求的请求数据包里面包含我们刚刚打包好的图片和提示词。import requests import base64 from io import BytesIO # 1. 将图片转换为Base64字符串 buffered BytesIO() image.save(buffered, formatJPEG) # 如果是PNG图片可以改成PNG img_str base64.b64encode(buffered.getvalue()).decode() # 2. 构造请求数据 api_url https://api.example.com/v1/chat/completions # 请替换为真实API地址 headers { Content-Type: application/json, # 通常还需要一个认证头例如: Authorization: Bearer YOUR_API_KEY } data { model: Ostrakon-VL-8B, messages: [ { role: user, content: [ {type: text, text: 请根据这张图片的意境生成一首短诗。}, {type: image_url, image_url: {url: fdata:image/jpeg;base64,{img_str}}} ] } ] } # 3. 发送请求 response requests.post(api_url, headersheaders, jsondata)这段代码做了三件事转换图片格式、组装请求、发送请求。其中headers里的Authorization部分通常需要你从模型服务提供商那里获取一个API密钥API Key这是用来验证你身份的。由于每个API提供商的要求不同这里用注释标出你需要根据实际情况填写。3.4 第四步处理回复提取诗歌请求发出后我们会收到一个回复response。这个回复里就藏着AI为我们生成的诗歌。我们需要从这一大段数据里把诗歌内容“挖”出来。通常API的回复是JSON格式的诗歌文本在某个特定的路径下。我们假设它在response.json()[‘choices’][0][‘message’][‘content’]里。# 检查请求是否成功 if response.status_code 200: result response.json() # 从返回的JSON结构中提取生成的诗歌文本 poem result[choices][0][message][content] print(AI为你的图片生成的诗) print(- * 30) print(poem) else: print(f请求失败状态码{response.status_code}) print(response.text) # 打印错误信息方便调试这样如果一切顺利你就能在控制台看到AI为你图片创作的短诗了。4. 完整代码与实战演示我们把上面所有步骤组合起来就得到了一个完整的、可以运行的脚本。为了让代码更整洁我们还会加一点简单的错误处理。import requests import base64 from PIL import Image from io import BytesIO def generate_poem_from_image(image_path, api_endpoint, api_keyNone): 根据本地图片生成诗歌 :param image_path: 本地图片路径 :param api_endpoint: Ostrakon-VL-8B API地址 :param api_key: 可选的API密钥 try: # 1. 打开并准备图片 image Image.open(image_path) buffered BytesIO() # 根据图片格式保存这里假设为JPEG image.save(buffered, formatimage.format or JPEG) img_base64 base64.b64encode(buffered.getvalue()).decode() # 2. 准备请求头和数据 headers {Content-Type: application/json} if api_key: headers[Authorization] fBearer {api_key} data { model: Ostrakon-VL-8B, messages: [ { role: user, content: [ {type: text, text: 请根据这张图片的意境生成一首短诗。}, { type: image_url, image_url: { url: fdata:image/{image.format.lower() if image.format else jpeg};base64,{img_base64} } } ] } ] } # 3. 发送请求 print(正在请求AI为图片赋诗...) response requests.post(api_endpoint, headersheaders, jsondata, timeout30) # 4. 处理响应 if response.status_code 200: result response.json() # 注意实际提取路径需根据API返回格式调整 poem_text result.get(choices, [{}])[0].get(message, {}).get(content, ) if poem_text: print(\n 生成成功AI的诗作如下) print( * 40) print(poem_text) print( * 40) return poem_text else: print(未在返回数据中找到诗歌内容。) print(完整响应, result) else: print(f请求失败状态码{response.status_code}) print(错误信息, response.text) except FileNotFoundError: print(f错误找不到图片文件 {image_path}请检查路径。) except Exception as e: print(f程序运行出错{e}) # 使用示例 if __name__ __main__: # 请替换为你的图片路径和真实的API信息 MY_IMAGE sunset.jpg # 你的图片名 API_URL https://api.example.com/v1/chat/completions # 真实的API端点 # API_KEY your_api_key_here # 如果需要取消注释并填入你的密钥 # 调用函数 generate_poem_from_image(MY_IMAGE, API_URL) #, API_KEY)怎么运行它将上面的代码复制到一个文本编辑器里保存为image_to_poem.py。准备一张图片比如sunset.jpg放到和这个Python脚本相同的文件夹里。将代码中MY_IMAGE变量值改为你的图片文件名。最关键的一步你需要找到一个真正提供Ostrakon-VL-8B模型API服务的平台获取其API端点URL和可能的密钥API Key并替换代码中的API_URL和可选的API_KEY。目前许多AI模型平台都提供类似的视觉理解API。在命令行中进入脚本所在目录运行python image_to_poem.py。如果配置正确稍等片刻你就能看到AI为你图片生成的专属诗歌了。5. 试试看发挥你的创意这个基础版本已经能工作了但你可以让它变得更有趣。这里有几个小挑战你可以尝试修改代码来实现换种风格修改提示词Prompt。把“生成一首短诗”改成“生成一首豪放的宋词”、“写一段简短的图片描述”、“用莎士比亚的风格为这张图配文”看看AI会给出什么不同的答案。处理多张图写一个循环让它读取一个文件夹里的所有图片并为每一张都生成一首诗然后保存到文本文件里。做个简单界面如果你学过一点TkinterPython自带的图形界面库可以尝试做一个带按钮和图片显示框的小窗口点击按钮就生成诗歌体验会更棒。遇到问题很正常比如API地址不对、图片格式不支持、返回的数据结构不一样等等。这时候仔细阅读错误信息对照API提供商的文档或者在网上搜索相关错误都是解决问题的好方法。6. 总结看用Python让AI“看图写诗”并没有想象中那么复杂。这个不到20行核心逻辑的小项目串联起了本地文件处理、数据编码、网络请求和结果解析这几个编程中非常常见的环节。它最大的意义在于用一个有趣的结果让你直观地体验了调用AI模型API的完整流程。你不再只是学习枯燥的语法而是在完成一个具体、有成就感的事情。希望这个项目能成为你Python学习路上一个愉快的起点。当你成功运行并看到第一首AI诗时那种“原来我可以做到”的感觉正是编程最大的乐趣之一。不妨现在就动手试试给你的某张照片配上一首独一无二的诗吧。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。
Python入门项目:用20行代码调用Ostrakon-VL-8B给图片写首诗
Python入门项目用20行代码调用Ostrakon-VL-8B给图片写首诗1. 引言你有没有想过让电脑看懂一张图片然后为它写一首诗这听起来像是科幻电影里的情节但现在你只需要一点Python基础就能亲手实现它。今天这个项目就是带你用不到20行的Python代码做一个特别有意思的小工具。你给它一张你拍的照片或者网上找的风景图它就能调用一个叫Ostrakon-VL-8B的模型理解图片里的内容然后生成一首符合意境的短诗。整个过程就像是在和AI进行一次关于美的对话。对于刚开始学Python的朋友来说这个项目有几个特别好的地方。第一它用到的都是最基础的库比如requests和PIL没有复杂的依赖。第二代码量非常少逻辑清晰你能很快看到成果获得正反馈。第三它把枯燥的API调用变成了一个有趣的创作过程让你直观感受到AI的能力。做完这个项目你不仅学会了如何用Python处理图片和调用网络服务还能收获一份独一无二的“AI诗作”成就感满满。2. 项目准备认识你的工具在开始写代码之前我们先花几分钟了解一下需要用到的几个“工具”。别担心它们都非常简单。2.1 Python环境首先确保你的电脑上已经安装了Python。打开你的命令行Windows上是CMD或PowerShellMac或Linux上是终端输入python --version或者python3 --version。如果能看到像Python 3.8.10这样的版本号那就没问题了。建议使用Python 3.6或更高的版本。如果还没安装可以去Python官网下载安装过程很简单。2.2 两个核心的Python库我们这个项目主要依赖两个库requests这是Python里用来发送网络请求的“瑞士军刀”。你可以把它想象成一个邮差我们的代码写好“信”请求它负责把信送到指定的服务器API再把服务器的“回信”响应带回来。我们就是用它来和Ostrakon-VL-8B模型对话的。Pillow(PIL)这是一个专门用来处理图片的库。它的前身是PILPython Imaging Library现在叫Pillow但导入时我们还是用PIL这个名字。它的任务就是帮我们打开电脑里的图片文件并做一些简单的处理比如调整大小、转换格式好让模型能“看懂”。2.3 安装它们安装这两个库只需要一行命令。打开你的命令行输入下面的命令并回车pip install requests pillow如果系统提示权限问题可以试试pip install --user requests pillow。看到“Successfully installed”的字样就说明工具都准备好了。3. 核心步骤让AI看图说话工具齐备我们来一步步拆解这个项目的核心逻辑。整个过程就像一条清晰的流水线准备图片 - 发送给AI - 接收并展示诗歌3.1 第一步用Pillow打开你的图片首先我们需要告诉程序要处理哪张图片。假设你有一张名为my_picture.jpg的图片放在和你的Python脚本同一个文件夹里。我们用Pillow里的Image模块来打开它from PIL import Image # 打开图片文件 image_path my_picture.jpg image Image.open(image_path)这里image变量就代表了你打开的那张图片。你可以把my_picture.jpg换成你电脑上任何图片的路径比如C:/Users/你的名字/Pictures/sunset.png。Pillow支持JPG、PNG等多种常见格式。3.2 第二步把图片“打包”好准备发送模型API不能直接接收一个Image对象它需要一种特定的格式。通常我们需要把图片转换成Base64编码的字符串。这听起来有点技术但你可以把它理解为把图片的二进制数据“翻译”成一段纯文本这样就能通过网络轻松传输了。同时我们还需要准备一段“提示词”Prompt来告诉模型我们想要它做什么。对于这个项目提示词很简单就是“请根据这张图片的意境生成一首短诗。”3.3 第三步通过requests发送请求这是最关键的一步我们要和远端的Ostrakon-VL-8B模型建立连接。我们需要知道它的“地址”API端点和“沟通方式”。假设模型的API地址是https://api.example.com/v1/chat/completions请注意这是一个示例地址实际使用时需要替换为真实可用的API端点。我们需要构造一个符合API要求的请求数据包里面包含我们刚刚打包好的图片和提示词。import requests import base64 from io import BytesIO # 1. 将图片转换为Base64字符串 buffered BytesIO() image.save(buffered, formatJPEG) # 如果是PNG图片可以改成PNG img_str base64.b64encode(buffered.getvalue()).decode() # 2. 构造请求数据 api_url https://api.example.com/v1/chat/completions # 请替换为真实API地址 headers { Content-Type: application/json, # 通常还需要一个认证头例如: Authorization: Bearer YOUR_API_KEY } data { model: Ostrakon-VL-8B, messages: [ { role: user, content: [ {type: text, text: 请根据这张图片的意境生成一首短诗。}, {type: image_url, image_url: {url: fdata:image/jpeg;base64,{img_str}}} ] } ] } # 3. 发送请求 response requests.post(api_url, headersheaders, jsondata)这段代码做了三件事转换图片格式、组装请求、发送请求。其中headers里的Authorization部分通常需要你从模型服务提供商那里获取一个API密钥API Key这是用来验证你身份的。由于每个API提供商的要求不同这里用注释标出你需要根据实际情况填写。3.4 第四步处理回复提取诗歌请求发出后我们会收到一个回复response。这个回复里就藏着AI为我们生成的诗歌。我们需要从这一大段数据里把诗歌内容“挖”出来。通常API的回复是JSON格式的诗歌文本在某个特定的路径下。我们假设它在response.json()[‘choices’][0][‘message’][‘content’]里。# 检查请求是否成功 if response.status_code 200: result response.json() # 从返回的JSON结构中提取生成的诗歌文本 poem result[choices][0][message][content] print(AI为你的图片生成的诗) print(- * 30) print(poem) else: print(f请求失败状态码{response.status_code}) print(response.text) # 打印错误信息方便调试这样如果一切顺利你就能在控制台看到AI为你图片创作的短诗了。4. 完整代码与实战演示我们把上面所有步骤组合起来就得到了一个完整的、可以运行的脚本。为了让代码更整洁我们还会加一点简单的错误处理。import requests import base64 from PIL import Image from io import BytesIO def generate_poem_from_image(image_path, api_endpoint, api_keyNone): 根据本地图片生成诗歌 :param image_path: 本地图片路径 :param api_endpoint: Ostrakon-VL-8B API地址 :param api_key: 可选的API密钥 try: # 1. 打开并准备图片 image Image.open(image_path) buffered BytesIO() # 根据图片格式保存这里假设为JPEG image.save(buffered, formatimage.format or JPEG) img_base64 base64.b64encode(buffered.getvalue()).decode() # 2. 准备请求头和数据 headers {Content-Type: application/json} if api_key: headers[Authorization] fBearer {api_key} data { model: Ostrakon-VL-8B, messages: [ { role: user, content: [ {type: text, text: 请根据这张图片的意境生成一首短诗。}, { type: image_url, image_url: { url: fdata:image/{image.format.lower() if image.format else jpeg};base64,{img_base64} } } ] } ] } # 3. 发送请求 print(正在请求AI为图片赋诗...) response requests.post(api_endpoint, headersheaders, jsondata, timeout30) # 4. 处理响应 if response.status_code 200: result response.json() # 注意实际提取路径需根据API返回格式调整 poem_text result.get(choices, [{}])[0].get(message, {}).get(content, ) if poem_text: print(\n 生成成功AI的诗作如下) print( * 40) print(poem_text) print( * 40) return poem_text else: print(未在返回数据中找到诗歌内容。) print(完整响应, result) else: print(f请求失败状态码{response.status_code}) print(错误信息, response.text) except FileNotFoundError: print(f错误找不到图片文件 {image_path}请检查路径。) except Exception as e: print(f程序运行出错{e}) # 使用示例 if __name__ __main__: # 请替换为你的图片路径和真实的API信息 MY_IMAGE sunset.jpg # 你的图片名 API_URL https://api.example.com/v1/chat/completions # 真实的API端点 # API_KEY your_api_key_here # 如果需要取消注释并填入你的密钥 # 调用函数 generate_poem_from_image(MY_IMAGE, API_URL) #, API_KEY)怎么运行它将上面的代码复制到一个文本编辑器里保存为image_to_poem.py。准备一张图片比如sunset.jpg放到和这个Python脚本相同的文件夹里。将代码中MY_IMAGE变量值改为你的图片文件名。最关键的一步你需要找到一个真正提供Ostrakon-VL-8B模型API服务的平台获取其API端点URL和可能的密钥API Key并替换代码中的API_URL和可选的API_KEY。目前许多AI模型平台都提供类似的视觉理解API。在命令行中进入脚本所在目录运行python image_to_poem.py。如果配置正确稍等片刻你就能看到AI为你图片生成的专属诗歌了。5. 试试看发挥你的创意这个基础版本已经能工作了但你可以让它变得更有趣。这里有几个小挑战你可以尝试修改代码来实现换种风格修改提示词Prompt。把“生成一首短诗”改成“生成一首豪放的宋词”、“写一段简短的图片描述”、“用莎士比亚的风格为这张图配文”看看AI会给出什么不同的答案。处理多张图写一个循环让它读取一个文件夹里的所有图片并为每一张都生成一首诗然后保存到文本文件里。做个简单界面如果你学过一点TkinterPython自带的图形界面库可以尝试做一个带按钮和图片显示框的小窗口点击按钮就生成诗歌体验会更棒。遇到问题很正常比如API地址不对、图片格式不支持、返回的数据结构不一样等等。这时候仔细阅读错误信息对照API提供商的文档或者在网上搜索相关错误都是解决问题的好方法。6. 总结看用Python让AI“看图写诗”并没有想象中那么复杂。这个不到20行核心逻辑的小项目串联起了本地文件处理、数据编码、网络请求和结果解析这几个编程中非常常见的环节。它最大的意义在于用一个有趣的结果让你直观地体验了调用AI模型API的完整流程。你不再只是学习枯燥的语法而是在完成一个具体、有成就感的事情。希望这个项目能成为你Python学习路上一个愉快的起点。当你成功运行并看到第一首AI诗时那种“原来我可以做到”的感觉正是编程最大的乐趣之一。不妨现在就动手试试给你的某张照片配上一首独一无二的诗吧。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。