You need to enable JavaScript to run this app.
向量数据库VikingDB

向量数据库VikingDB

复制全文
最佳实践
图文记忆库最佳实践
复制全文
图文记忆库最佳实践

为何需要图文记忆库

在构建高级 AI 应用(如智能助手、个性化推荐系统)时,让 AI 具备 长期记忆 是提升用户体验的关键。传统的记忆库主要处理文本信息,但在许多场景中,图像本身携带了远超文字的丰富信息。例如,一张家庭聚会的照片、一次旅行的风景照,或是一张产品设计的草图。
Viking 的「图文记忆库」正是为此而生。它结合了 Viking 记忆库 的结构化文本记忆能力和多模态模型的理解能力,旨在为开发者提供一套完整的、端到端的图文记忆管理方案。

核心能力

通过本实践,您将掌握如何构建一个系统,实现以下目标:

  • 图片与聊天摘要的统一存储:高效理解处理聊天中的文字内容和图片内容,生成结构化相关的聊天摘要以及提取摘要相关的图片信息
  • 高效的混合检索:通过文本 query 能够检索出最相近的事件、同时能够附带事件相关的图片,实现更好的检索体验。这部分记忆用于精确的文本检索、上下文理解和生成式任务。

图文记忆库的工作流程:

  1. 数据入库:当用户上传一张图片以及对应的聊天记录时,图文记忆库能够理解精确理解出图片内容是一只狗,​并在事件摘要时进行统一处理。

Image

  1. 数据检索
    • 文本检索:当需要回忆与某个主题相关的图片文字描述时,通过 search 接口在记忆库中检索,获取文本信息,如果文本信息同时带有图片,则会一并返回。

使用步骤

接下来,我们将分步详解如何从 0 到 1 实现这套图文记忆系统。

第一步:创建「图文记忆库」

要开始使用图文记忆能力,首先需要创建一个特殊类型的记忆库。在控制台页面上,选择创建多模态文本记忆库。
Image

第二步:图文会话入库

通过 add_session 接口写入图文会话,支持 response api 与 context api 两种格式上传图文会话。
关键参数 store_file,设置为 True 则提取并保留原始图片,检索时能够带回;设置为 False 则只理解图片内容并不保存图片。默认为 False。

Python SDK 示例:

import os
import time
from vikingdb.memory import VikingMem
from vikingdb import APIKey

API_KEY = os.getenv("MEMORY_API_KEY", "your_key")

client = VikingMem(
    host = "api-knowledgebase.mlp.cn-beijing.volces.com",
    region = "cn-beijing",
    auth= APIKey(api_key=API_KEY),
    scheme = "http",
)

collection = client.get_collection(
    collection_name="multimodal_collection",  # 替换为你的记忆库名称
    project_name="default"
)

def add_session():    
    now_ts = int(time.time() * 1000)
    result = collection.add_session(
        session_id="session_001",
        messages= [{"role": "user", "content": [{"type": "image_url", "image_url": {"url": "https://huabei-2102608324.tos-cn-beijing.volces.com/dog.jpeg"}}, {"type": "text", "text": "我今天刚养了一只宠物,看它可爱吗?"}]}, {"role": "assistant", "content": "这也太可爱了吧。希望你们相处的愉快!"}],
        metadata = {
            "default_user_id": "user1",
            "default_user_name": "XiaoMing",
            "default_assistant_id": "assistant_01",
            "default_assistant_name": "Robot",
            "time": now_ts,
            "store_file": True,
        }
    ) 
    return result

if __name__ == "__main__":
    print("Viking Memory Add Session Messages Example")
    add_session()

第三步:检索记忆

如果记忆与图片相关联,则会返回 10 分钟临时可访问的图片链接。

Python SDK 示例:

import os
import time
from vikingdb.memory import VikingMem
from vikingdb import APIKey

API_KEY = os.getenv("MEMORY_API_KEY", "your_key")

client = VikingMem(
    host = "api-knowledgebase.mlp.cn-beijing.volces.com",
    region = "cn-beijing",
    auth= APIKey(api_key=API_KEY),
    scheme="http",
)

# 获取记忆库集合
collection = client.get_collection(
    collection_name="multimodal_collection",  # 用您的记忆库名称替代
    project_name="default"
)

query = "你还记得我最近养了只什么动物"
filter = {
    "user_id": "user1",
    "memory_type": ["sys_event_v1"]
}

# 获取会话信息
result = collection.search_memory(
    query=query,
    filter=filter,
    limit=10
)

# 获取会话信息
result = collection.search_event_memory(
    query=query,
    filter=filter,
    limit=10
)

print("\n=== 格式化结果 ===")
print(json.dumps(result, indent=2, ensure_ascii=False)) 
最近更新时间:2026.01.21 15:43:03
这个页面对您有帮助吗?
有用
有用
无用
无用