ToMetadata 将 Provenance 转换为 metadata map。 用于存储到 VectorStore。
()
| 165 | // ToMetadata 将 Provenance 转换为 metadata map。 |
| 166 | // 用于存储到 VectorStore。 |
| 167 | func (p *MemoryProvenance) ToMetadata() map[string]any { |
| 168 | meta := map[string]any{ |
| 169 | "provenance": map[string]any{ |
| 170 | "source_type": string(p.SourceType), |
| 171 | "confidence": p.Confidence, |
| 172 | "sources": p.Sources, |
| 173 | "created_at": p.CreatedAt.Format(time.RFC3339), |
| 174 | "updated_at": p.UpdatedAt.Format(time.RFC3339), |
| 175 | "version": p.Version, |
| 176 | "is_explicit": p.IsExplicit, |
| 177 | "corroboration_count": p.CorroborationCount, |
| 178 | }, |
| 179 | } |
| 180 | |
| 181 | if p.LastAccessedAt != nil { |
| 182 | meta["provenance"].(map[string]any)["last_accessed_at"] = p.LastAccessedAt.Format(time.RFC3339) |
| 183 | } |
| 184 | |
| 185 | if len(p.Tags) > 0 { |
| 186 | meta["provenance"].(map[string]any)["tags"] = p.Tags |
| 187 | } |
| 188 | |
| 189 | return meta |
| 190 | } |
| 191 | |
| 192 | // FromMetadata 从 metadata map 中提取 Provenance。 |
| 193 | func FromMetadata(meta map[string]any) *MemoryProvenance { |
no outgoing calls