Skip to content

Commit 9968791

Browse files
committed
Flatten request parts rather than plucking first
1 parent 31261ca commit 9968791

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

packages/vertexai/src/methods/chrome-adapter.ts

+10-4
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,13 @@ export class ChromeAdapter {
9292
*/
9393
async generateContent(request: GenerateContentRequest): Promise<Response> {
9494
const session = await this.createSession();
95-
// TODO: support multiple content objects when Chrome supports
95+
// NOTE: assumes all parts are from the same role, enforced by isOnDeviceRequest validation.
96+
// TODO: stop stripping roles when Chrome supports
9697
// sequence<LanguageModelMessage>
9798
const contents = await Promise.all(
98-
request.contents[0].parts.map(ChromeAdapter.toLanguageModelMessageContent)
99+
request.contents.flatMap(content =>
100+
content.parts.map(ChromeAdapter.toLanguageModelMessageContent)
101+
)
99102
);
100103
const text = await session.prompt(contents);
101104
return ChromeAdapter.toResponse(text);
@@ -113,10 +116,13 @@ export class ChromeAdapter {
113116
request: GenerateContentRequest
114117
): Promise<Response> {
115118
const session = await this.createSession();
116-
// TODO: support multiple content objects when Chrome supports
119+
// NOTE: assumes all parts are from the same role, enforced by isOnDeviceRequest validation.
120+
// TODO: stop stripping roles when Chrome supports
117121
// sequence<LanguageModelMessage>
118122
const contents = await Promise.all(
119-
request.contents[0].parts.map(ChromeAdapter.toLanguageModelMessageContent)
123+
request.contents.flatMap(content =>
124+
content.parts.map(ChromeAdapter.toLanguageModelMessageContent)
125+
)
120126
);
121127
const stream = await session.promptStreaming(contents);
122128
return ChromeAdapter.toStreamResponse(stream);

0 commit comments

Comments
 (0)