Pular para o conteúdo

Schema de Conversas

O Conversations schema define o formato normalizado para armazenamento de conversas independente de provedor. Exports brutos de provedores (OpenAI, Anthropic, Google, Microsoft, xAI) são analisados e normalizados para este formato. Conversas armazenadas neste formato são referenciadas por conversations_index no memory store.

Este formato preserva o grafo completo de mensagens, incluindo ramificações (DAG) de provedores como OpenAI.

portable-ai-memory-conversation.schema.json

Schema: JSON Schema Draft 2020-12 · License: Apache 2.0

FieldTypeDescription
schemastringDeve ser "portable-ai-memory-conversation"
schema_versionstringVersão do schema. Deve corresponder à versão do memory-store schema
idstringIdentificador único da conversa. Recomenda-se UUID v4. Referenciado por conversations_index
providerProviderInfoInformações do provedor de origem e identificadores originais
temporalobjectTimestamps. Campo obrigatório: created_at (ISO 8601). Opcional: updated_at
messagesMessage[]Array de mensagens normalizadas
FieldTypeDefaultDescription
titlestring | nullnullTítulo legível da conversa obtido do export do provedor
participantsParticipant[][]Participantes — tipicamente usuário + assistente, pode incluir system ou tool
modelstring | nullnullModelo primário utilizado (ex.: gpt-4o, claude-3-opus-20240229). Pode variar por mensagem
system_instructionstring | nullnullSystem prompt ou instrução ativa para esta conversa
is_archivedbooleanfalseSe foi arquivada pelo usuário na plataforma de origem
tagsstring[][]Tags ou tópicos. Padrão: ^[a-z0-9][a-z0-9_-]*$
raw_metadataobject{}Metadados específicos do provedor preservados literalmente. Não interpretados pelo PAM
import_metadataImportMetadataMetadados sobre o processo de importação

Informações do provedor de origem. Preserva identificadores originais para rastreabilidade.

FieldTypeRequiredDescription
namestringyesIdentificador do provedor. Deve usar nomes de produto (chatgpt, claude, gemini, copilot, grok), não nomes de empresa. Mesmo namespace que provenance.platform no memory-store schema
conversation_idstring | nullnoID original da conversa do export do provedor
account_idstring | nullnoID da conta do usuário na plataforma do provedor
export_format_versionstring | nullnoVersão do formato de export do provedor (ex.: 2025-01-export). Usado para selecionar o parser correto
FieldTypeRequiredDescription
rolestringyes"user", "assistant", "system" ou "tool"
namestring | nullnoNome de exibição, se disponível
provider_idstring | nullnoIdentificador do participante específico do provedor

Uma única mensagem normalizada. Para conversas lineares, as mensagens estão em ordem cronológica. Para conversas com ramificação (ex.: OpenAI), use parent_id e children_ids para reconstruir o DAG.

FieldTypeDescription
idstringID único da mensagem dentro desta conversa. Recomenda-se UUID v4
rolestringRole normalizado: "user", "assistant", "system", "tool". Valores específicos do provedor são mapeados (ex.: humanuser, AIassistant). Veja Provider Mappings para a tabela completa
created_atstringTimestamp ISO 8601. Convertido a partir do formato do provedor (Unix epoch para OpenAI, ISO para os demais)
FieldTypeDefaultDescription
provider_message_idstring | nullnullID original da mensagem do export do provedor
contentMessageContentConteúdo da mensagem. Pode ser texto simples ou multipart
parent_idstring | nullnullID da mensagem pai para reconstrução do DAG. null para mensagens raiz
children_idsstring[][]IDs das mensagens filhas. Múltiplos filhos indicam ramificação
modelstring | nullnullModelo que gerou esta mensagem (mensagens do assistente)
is_thoughtbooleanfalseEtapa interna de raciocínio/pensamento (Gemini isThought, Claude extended thinking). Não faz parte da conversa visível
token_countinteger | nullnullContagem de tokens, se disponível no provedor
attachmentsAttachment[][]Arquivos, imagens ou outros anexos
citationsCitation[][]Citações ou fontes referenciadas por esta mensagem
tool_callsToolCall[][]Chamadas de tool/função feitas pelo assistente
raw_metadataobject{}Metadados específicos do provedor preservados literalmente

Conteúdo normalizado de mensagem. Suporta tanto texto simples quanto conteúdo multipart.

FieldTypeRequiredDescription
typestringyes"text" (conteúdo no campo text) ou "multipart" (conteúdo no array parts)
textstring | nullnoConteúdo de texto simples. Usado quando type é "text"
partsContentPart[]noArray de partes de conteúdo. Usado quando type é "multipart"

Uma única parte de conteúdo multipart.

FieldTypeRequiredDescription
typestringyes"text", "image", "code", "file", "audio", "video"
textstring | nullnoConteúdo de texto (para partes text e code)
languagestring | nullnoLinguagem de programação (para partes code)
mime_typestring | nullnoTipo MIME (para partes de conteúdo binário)
refstring | nullnoReferência a arquivo externo (caminho, URL ou referência de armazenamento)

Arquivo ou anexo de mídia em uma mensagem.

FieldTypeRequiredDescription
typestringyes"file", "image", "audio", "video", "document"
namestring | nullnoNome original do arquivo
mime_typestring | nullnoTipo MIME
size_bytesinteger | nullnoTamanho do arquivo em bytes
refstring | nullnoReferência ao arquivo armazenado
provider_idstring | nullnoIdentificador do anexo específico do provedor

Uma citação ou fonte referenciada por uma mensagem.

FieldTypeRequiredDescription
titlestring | nullnoTítulo da fonte citada
urlstring | nullnoURL da fonte citada
snippetstring | nullnoTrecho relevante da fonte

Uma chamada de tool ou função feita pelo assistente.

FieldTypeRequiredDescription
idstring | nullnoIdentificador da chamada de tool
namestringyesNome da tool ou função chamada
inputobject | string | nullnoParâmetros de entrada passados para a tool
outputstring | nullnoSaída retornada pela tool

Metadados sobre o processo de importação. Permite depuração e reimportação.

FieldTypeRequiredDescription
importerstring | nullnoIdentificador do sistema importador. Formato: system/version
importer_versionstring | nullnoVersão do importador específica do provedor (ex.: openai-importer/2025.01)
imported_atstring | nullnoTimestamp ISO 8601 da importação
source_filestring | nullnoCaminho ou identificador do arquivo de origem
source_checksumstring | nullnoSHA-256 do arquivo de origem. Padrão: ^sha256:[a-f0-9]{64}$