Skip to content

Commit 0e0bdab

Browse files
authored
feat(beeai-sdk): allow multiple citations per metadata (#1003)
Signed-off-by: Jan Pokorný <JenomPokorny@gmail.com>
1 parent 32a3361 commit 0e0bdab

File tree

1 file changed

+11
-28
lines changed
  • apps/beeai-sdk/src/beeai_sdk/a2a/extensions/ui

1 file changed

+11
-28
lines changed

apps/beeai-sdk/src/beeai_sdk/a2a/extensions/ui/citation.py

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ class Citation(pydantic.BaseModel):
4949
description: str | None = None
5050

5151

52+
class CitationMetadata(pydantic.BaseModel):
53+
citations: list[Citation] = pydantic.Field(default_factory=list)
54+
55+
5256
class CitationExtensionSpec(NoParamsBaseExtensionSpec):
5357
URI: str = "https://a2a-extensions.beeai.dev/ui/citation/v1"
5458

@@ -57,43 +61,22 @@ class CitationExtensionServer(BaseExtensionServer[CitationExtensionSpec, NoneTyp
5761
def citation_metadata(
5862
self,
5963
*,
60-
start_index: int | None = None,
61-
end_index: int | None = None,
62-
url: str | None = None,
63-
title: str | None = None,
64-
description: str | None = None,
65-
) -> dict[str, Citation]:
66-
return {
67-
self.spec.URI: Citation(
68-
start_index=start_index,
69-
end_index=end_index,
70-
url=url,
71-
title=title,
72-
description=description,
73-
)
74-
}
64+
citations: list[Citation],
65+
) -> dict[str, CitationMetadata]:
66+
return {self.spec.URI: CitationMetadata(citations=citations)}
7567

7668
def message(
7769
self,
7870
text: str | None = None,
7971
parts: list[Part] | None = None,
80-
citation_start_index: int | None = None,
81-
citation_end_index: int | None = None,
82-
citation_url: str | None = None,
83-
citation_title: str | None = None,
84-
citation_description: str | None = None,
72+
*,
73+
citations: list[Citation],
8574
) -> AgentMessage:
8675
return AgentMessage(
8776
text=text,
8877
parts=parts or [],
89-
metadata=self.citation_metadata(
90-
start_index=citation_start_index,
91-
end_index=citation_end_index,
92-
url=citation_url,
93-
title=citation_title,
94-
description=citation_description,
95-
),
78+
metadata=self.citation_metadata(citations=citations),
9679
)
9780

9881

99-
class CitationExtensionClient(BaseExtensionClient[CitationExtensionSpec, Citation]): ...
82+
class CitationExtensionClient(BaseExtensionClient[CitationExtensionSpec, CitationMetadata]): ...

0 commit comments

Comments
 (0)