[Feature] 支持 qwen3-vl-embedding 等多模态向量模型的图文检索
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 22.8k
- Forks
- 3.2k
- Merge medio
- 45 min
- PR fusionados (30 d)
- 270
Descripción
MaxKB Version
2.10.5
Please describe your needs or suggestions for improvements
当前 MaxKB 的知识库向量化和检索流程只支持纯文本 Embedding,无法使用 qwen3-vl-embedding 等多模态向量模型进行图片向量化和图文跨模态检索。
在配置多模态向量模型后,图片内容仍只能先经过 OCR 或视觉模型转换为文本,再生成文本向量,无法直接生成图片向量。因此无法实现“文字检索图片”“图片检索文字”以及图文统一向量空间检索。
Please describe the solution you suggest
建议增加多模态向量模型能力:
- 在模型配置中标识文本、图片或图文多模态输入能力;
- 向量化任务支持将图片文件传递给 Embedding 模型,而不仅是
List[str]; - 查询侧支持文本、图片和图文混合输入;
- 向量存储和索引记录模型、维度及模态信息,避免与现有文本向量混用;
- 保持现有纯文本 Embedding 和已有知识库的兼容性。
Additional Information
MaxKB v2.10.5-lts 的 PGVector 入库和查询均调用 embed_query(text) / embed_documents(List[str]),当前模型抽象没有图片输入通道。
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza rastreando los puntos de entrada de ingestión y consulta de PGVector que llaman a embed_query(text) y embed_documents(List[str]); después, inspecciona los tipos de entrada compatibles con la abstracción del modelo. Define cómo se representan las entradas de imágenes y las entradas mixtas de texto e imagen, los metadatos del modelo, las dimensiones y la información de modalidad, preservando los embeddings de texto existentes. Se considera terminado cuando las rutas compatibles de ingestión y recuperación admiten las modalidades solicitadas sin mezclar vectores incompatibles.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- backend, databases, machine-learning
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Activo
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 30/100