【多模态】01-Anthropic多模态模型与LlamaIndex分析
1. 案例目标本案例演示如何使用Anthropic的多模态模型Claude 3包括Opus和Sonnet版本进行图像理解和推理。主要目标包括展示如何使用Anthropic多模态LLM类/抽象进行图像理解和推理演示Anthropic多模态LLM支持的多种功能complete、chat、stream complete和stream chat展示如何从图像中提取结构化信息如股票信息演示如何构建基于图像数据的RAG检索增强生成管道2. 技术栈与核心依赖本案例使用了以下技术栈和核心依赖多模态LLM: Anthropic Claude 3 (Opus和Sonnet) - 用于图像理解和推理向量数据库: Qdrant - 用于存储和检索图像描述文本嵌入模型: OpenAI Embedding - 用于将文本转换为向量表示核心框架: LlamaIndex - 提供多模态处理和向量检索功能结构化输出: Pydantic - 定义和验证结构化数据模型主要依赖包:llama-index-multi-modal-llms-anthropic llama-index-vector-stores-qdrant matplotlib3. 环境配置本案例需要配置以下环境变量ANTHROPIC_API_KEY - 用于访问Anthropic API的密钥注意: 需要获取Anthropic的API密钥并将其设置为环境变量ANTHROPIC_API_KEY。4. 案例实现1. 安装依赖和设置API密钥安装必要的依赖包并设置Anthropic API密钥!pip install llama-index-multi-modal-llms-anthropic !pip install llama-index-vector-stores-qdrant !pip install matplotlib import os os.environ[ANTHROPIC_API_KEY] # Your ANTHROPIC API key here2. 初始化Anthropic多模态LLM创建AnthropicMultiModal实例from llama_index.multi_modal_llms.anthropic import AnthropicMultiModal anthropic_mm_llm AnthropicMultiModal(max_tokens300)3. 加载图像数据使用SimpleDirectoryReader加载本地图像文件from llama_index.core import SimpleDirectoryReader # 加载本地图像 image_documents SimpleDirectoryReader(input_dir./images).load_data()4. 使用complete方法进行图像理解使用Anthropic多模态LLM的complete方法对图像进行描述response anthropic_mm_llm.complete( promptDescribe the images as an alternative text, image_documentsimage_documents, ) print(response)5. 定义结构化数据模型使用Pydantic定义股票信息的结构化模型from typing import List from pydantic import BaseModel class TickerInfo(BaseModel): 股票信息 direction: str ticker: str company: str shares_traded: int percent_of_total_etf: float class TickerList(BaseModel): 股票代码列表 fund: str tickers: List[TickerInfo]6. 使用MultiModalLLMCompletionProgram提取结构化信息创建多模态LLM完成程序从图像中提取结构化股票信息from llama_index.multi_modal_llms.anthropic import AnthropicMultiModal from llama_index.core.program import MultiModalLLMCompletionProgram from llama_index.core.output_parsers import PydanticOutputParser prompt_template_str \ Can you get the stock information in the image \ and return the answer? Pick just one fund. Make sure the answer is a JSON format corresponding to a Pydantic schema. The Pydantic schema is given below. # 初始化Anthropic多模态类 anthropic_mm_llm AnthropicMultiModal(max_tokens300) llm_program MultiModalLLMCompletionProgram.from_defaults( output_clsTickerList, image_documentsimage_documents, prompt_template_strprompt_template_str, multi_modal_llmanthropic_mm_llm, verboseTrue, ) # 执行程序 response llm_program() print(str(response))7. 构建图像RAG管道下载图像数据集并使用Claude 3提取图像描述然后构建向量索引# 下载图像数据集 !wget https://www.dropbox.com/scl/fi/c1ec6osn0r2ggnitijqhl/mixed_wiki_images_small.zip?rlkeyswwxc7h4qtwlnhmby5fsnderddl1 -O mixed_wiki_images_small.zip !unzip mixed_wiki_images_small.zip # 提取图像描述 from llama_index.core.schema import TextNode from pathlib import Path from llama_index.core import SimpleDirectoryReader nodes [] for img_file in Path(mixed_wiki_images_small).glob(*.png): print(img_file) # 加载本地图像 image_documents SimpleDirectoryReader(input_files[img_file]).load_data() response anthropic_mm_llm.complete( promptDescribe the images as an alternative text, image_documentsimage_documents, ) metadata {img_file: img_file} nodes.append(TextNode(textstr(response), metadatametadata))8. 创建向量索引使用Qdrant向量存储和OpenAI嵌入模型创建向量索引from llama_index.core import VectorStoreIndex, StorageContext from llama_index.embeddings.openai import OpenAIEmbedding from llama_index.llms.anthropic import Anthropic from llama_index.vector_stores.qdrant import QdrantVectorStore from llama_index.core import Settings from llama_index.core import StorageContext import qdrant_client # 创建本地Qdrant向量存储 client qdrant_client.QdrantClient(pathqdrant_mixed_img) vector_store QdrantVectorStore(clientclient, collection_namecollection) # 使用OpenAI嵌入模型 embed_model OpenAIEmbedding() anthropic_mm_llm AnthropicMultiModal(max_tokens300) storage_context StorageContext.from_defaults(vector_storevector_store) index VectorStoreIndex( nodesnodes, storage_contextstorage_context, )9. 创建查询引擎并执行查询使用Anthropic LLM创建查询引擎并执行查询from llama_index.llms.anthropic import Anthropic query_engine index.as_query_engine(llmAnthropic()) response query_engine.query(Tell me more about porsche) print(str(response))10. 显示源节点显示查询结果的源节点包括相似度得分和文本内容from llama_index.core.response.notebook_utils import display_source_node for n in response.source_nodes: display_source_node(n, metadata_modeall)5. 案例效果本案例实现了以下效果图像理解: 成功使用Claude 3模型对图像进行描述和分析结构化信息提取: 从金融图表中提取结构化的股票信息包括股票代码、公司名称、交易数量等图像RAG: 构建了基于图像数据的检索增强生成系统能够根据文本查询检索相关图像并生成回答多模态查询: 支持基于文本的查询检索相关的图像描述信息6. 案例实现思路本案例的实现思路如下多模态处理: 利用Anthropic Claude 3的多模态能力理解图像内容并生成文本描述结构化输出: 使用Pydantic定义数据模型结合MultiModalLLMCompletionProgram从图像中提取结构化信息向量表示: 将图像描述文本转换为向量表示便于进行语义检索RAG架构: 构建检索增强生成系统结合向量检索和LLM生成能力混合模型: 结合Anthropic多模态LLM、OpenAI嵌入模型和Qdrant向量存储构建完整的多模态系统7. 扩展建议本案例可以进一步扩展和优化支持更多图像类型: 扩展到处理更多类型的图像如医学影像、卫星图像等多语言支持: 支持多语言图像描述和查询实时图像处理: 支持实时图像流处理和分析图像相似度搜索: 实现基于图像内容的相似度搜索而不仅仅是基于文本描述用户界面: 开发图形用户界面方便用户上传图像和执行查询性能优化: 优化向量存储和检索的性能支持大规模图像处理8. 总结本案例展示了如何使用Anthropic Claude 3多模态模型与LlamaIndex结合构建图像理解和检索系统。通过使用AnthropicMultiModal类我们能够对图像进行描述和分析提取结构化信息并构建基于图像数据的RAG管道。这种方法可以应用于各种需要图像理解和检索的场景如图像搜索、内容分析、文档处理等。核心价值: 本案例的核心价值在于展示了Anthropic Claude 3多模态模型与LlamaIndex的结合为构建智能图像理解和检索系统提供了实用方案。

相关新闻

华硕笔记本性能调优新选择:G-Helper完全指南

华硕笔记本性能调优新选择:G-Helper完全指南

华硕笔记本性能调优新选择:G-Helper完全指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expertbook,…

2026/7/26 8:47:01阅读更多 →
Windows动态链接库(DLL)原理与故障修复指南

Windows动态链接库(DLL)原理与故障修复指南

1. 动态链接库基础认知动态链接库(Dynamic Link Library)作为Windows系统的核心组件,本质上是一组可被多个程序共享的代码和资源集合。与静态库不同,DLL在程序运行时才被加载到内存中,这种设计使得软件更新和维护变得更…

2026/7/26 8:47:01阅读更多 →
NLPC公理否定了宇宙奇点与绝对时间零点

NLPC公理否定了宇宙奇点与绝对时间零点

MHRC(Matter-Horizon-Radius-Curvature)模型结合NLPC(Non-Linear Propagation Constraint)公理,通过以下核心逻辑否定宇宙存在创世奇点与绝对时间零点: ###一、MHRC模型与NLPC公理的核心框架MHRC模型将宇宙…

2026/7/26 8:47:01阅读更多 →
AI微服务工程化:从FastAPI封装到Docker容器化实战

AI微服务工程化:从FastAPI封装到Docker容器化实战

你刚接手一个AI项目,老板让你把几个大模型API调用封装成服务。第一版代码跑得挺好,但用户量一上来,服务开始频繁超时、内存泄漏、扩展困难。你意识到:单机脚本和可维护的微服务之间,隔着一整套工程化鸿沟。 这个问题太…

2026/7/26 9:55:11阅读更多 →
微信小程序提交踩坑复盘:index.lock Permission denied 的定位与修复

微信小程序提交踩坑复盘:index.lock Permission denied 的定位与修复

1. 引言在微信小程序开发与上线的生命周期中,将代码提交到微信平台(上传代码、预览或发布)是最关键的一步。然而,许多开发者在本地开发环境或CI/CD流水线中提交代码时,都可能遭遇一个令人困惑的错误:index.…

2026/7/26 9:55:11阅读更多 →
如何快速检测PDF差异?diff-pdf终极指南帮你一键搞定

如何快速检测PDF差异?diff-pdf终极指南帮你一键搞定

如何快速检测PDF差异?diff-pdf终极指南帮你一键搞定 【免费下载链接】diff-pdf A simple tool for visually comparing two PDF files 项目地址: https://gitcode.com/gh_mirrors/di/diff-pdf 在文档协作、合同审核、设计稿审查等场景中,我们经常…

2026/7/26 9:55:11阅读更多 →
抖音批量下载神器:douyin-downloader完全指南,一键获取无水印视频

抖音批量下载神器:douyin-downloader完全指南,一键获取无水印视频

抖音批量下载神器:douyin-downloader完全指南,一键获取无水印视频 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and …

2026/7/26 9:55:11阅读更多 →
终极免费Windows驱动清理工具:Driver Store Explorer完整指南

终极免费Windows驱动清理工具:Driver Store Explorer完整指南

终极免费Windows驱动清理工具:Driver Store Explorer完整指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否发现Windows系统盘空间越来越少?外设连接时经…

2026/7/26 9:55:11阅读更多 →
寒潮来袭!门窗de老毛病又犯了……

寒潮来袭!门窗de老毛病又犯了……

寒潮来袭!门窗de老毛病又犯了……全国性的降温来袭,北方开启暴雪的极端天气,湿寒气候导致疫情继续持续,强降雪使降雪厚度达10cm以上,大家在室内的时间会更多些,这时也是考验室内舒适度和外窗结构保温的最佳…

2026/7/26 9:53:11阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/26 0:01:28阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/26 0:01:28阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/26 0:01:28阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/26 0:01:28阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/26 0:01:28阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/26 0:01:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/25 23:03:25阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/25 19:03:04阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/25 19:03:04阅读更多 →