引言
在当今AI技术飞速发展的时代,多模态大模型正变得越来越强大。DeepSeek作为国内领先的大模型提供商,其API接口为我们提供了便捷的方式来访问这些先进能力。本文将介绍如何使用Python和DeepSeek API实现一个简单的图像分析应用,能够识别图片中的动物。
环境准备
首先,我们需要安装必要的Python库:
pip install langchain-openai httpx
langchain-openai库虽然名字中包含"OpenAI",但我们可以通过配置让它与DeepSeek API兼容。httpx库则用于下载网络图片。
获取API密钥
在使用DeepSeek API前,你需要:
- 访问DeepSeek官网注册账号
- 获取API密钥
- 将密钥设置为环境变量(推荐做法)
# 在.bashrc或.zshrc中添加
export DEEPSEEK_API_KEY="your_api_key_here"
代码解析
让我们逐步分析这个图像分析应用的实现代码:
1. 导入必要的库
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
import base64
import httpx
import os
import json
这里我们使用了langchain生态系统的组件,尽管DeepSeek不是OpenAI,但它们的API设计兼容,使得我们可以复用这些工具。
2. 下载并编码图片
image_url = "https://wx4.sinaimg.cn/mw690/007jCdDZgy1h84021iessj30u00tj0ul.jpg"
image_data = base64.b64encode(httpx.get(image_url).read()).decode("utf-8")
DeepSeek API目前不支持直接从URL加载图片,所以我们需要:
- 使用
httpx下载图片 - 用
base64编码图片数据 - 将二进制数据转换为UTF-8字符串
3. 配置DeepSeek模型
model = ChatOpenAI(
model_name="deepseek-chat",
openai_api_key=os.getenv("DEEPSEEK_API_KEY"),
openai_api_base="https://api.deepseek.com/v1"
)
这里我们配置了:
- 使用
deepseek-chat模型 - 从环境变量获取API密钥
- 设置DeepSeek的API基础地址
4. 构建多模态消息
message = HumanMessage(
content=json.dumps([
{"type": "text", "text": "这张图片里面有什么动物?"},
{"type": "image", "image": {"data": image_data, "format": "base64"}},
])
)
消息结构包含:
- 文本部分:我们的问题
- 图像部分:Base64编码的图片数据
5. 调用API并获取响应
response = model.invoke([message])
print(response.content)
应用场景
这种多模态分析能力可以应用于:
- 社交媒体内容审核
- 智能相册分类
- 电商产品图像识别
- 教育领域的视觉辅助学习
完整代码
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
import base64
import httpx
import os
import json
# 下载并编码图片
image_url = "https://wx4.sinaimg.cn/mw690/007jCdDZgy1h84021iessj30u00tj0ul.jpg"
image_data = base64.b64encode(httpx.get(image_url).read()).decode("utf-8")
# 配置DeepSeek模型
model = ChatOpenAI(
model_name="deepseek-chat",
openai_api_key=os.getenv("DEEPSEEK_API_KEY"),
openai_api_base="https://api.deepseek.com/v1"
)
# 构建多模态消息
message = HumanMessage(
content=json.dumps([
{"type": "text", "text": "这张图片里面有什么动物?"},
{"type": "image", "image": {"data": image_data, "format": "base64"}},
])
)
# 调用API
response = model.invoke([message])
print(response.content)
结语
通过DeepSeek API,我们能够轻松实现强大的多模态分析功能。本文介绍的只是基础应用,你可以在此基础上开发更复杂的应用场景。随着DeepSeek模型的不断升级,其图像理解能力将会更加强大,为开发者提供更多可能性。
希望这篇技术博客能帮助你快速上手DeepSeek的多模态API开发!
1893





