1616 */
1717
1818import { AIError } from '../errors' ;
19+ import { logger } from '../logger' ;
1920import {
2021 CountTokensRequest ,
2122 GenerateContentRequest ,
@@ -100,6 +101,7 @@ export class ChromeAdapter {
100101 content . parts . map ( ChromeAdapter . toLanguageModelMessageContent )
101102 )
102103 ) ;
104+ logger . warn ( 'Only generating content from first item in "contents" array.' ) ;
103105 const text = await session . prompt ( contents ) ;
104106 return ChromeAdapter . toResponse ( text ) ;
105107 }
@@ -124,6 +126,7 @@ export class ChromeAdapter {
124126 content . parts . map ( ChromeAdapter . toLanguageModelMessageContent )
125127 )
126128 ) ;
129+ logger . warn ( 'Only generating content from first item in "contents" array.' ) ;
127130 const stream = await session . promptStreaming ( contents ) ;
128131 return ChromeAdapter . toStreamResponse ( stream ) ;
129132 }
@@ -141,13 +144,15 @@ export class ChromeAdapter {
141144 private static isOnDeviceRequest ( request : GenerateContentRequest ) : boolean {
142145 // Returns false if the prompt is empty.
143146 if ( request . contents . length === 0 ) {
147+ logger . debug ( 'Empty prompt rejected for on-device inference.' ) ;
144148 return false ;
145149 }
146150
147151 for ( const content of request . contents ) {
148152 // Returns false if the request contains multiple roles, eg a chat history.
149153 // TODO: remove this guard once LanguageModelMessage is supported.
150154 if ( content . role !== 'user' ) {
155+ logger . debug ( 'Non-user role "${content.role}" rejected for on-device inference.' ) ;
151156 return false ;
152157 }
153158
@@ -159,6 +164,9 @@ export class ChromeAdapter {
159164 part . inlineData . mimeType
160165 ) === - 1
161166 ) {
167+ logger . debug (
168+ `Unsupported mime type "${ part . inlineData . mimeType } " rejected for on-device inference.`
169+ ) ;
162170 return false ;
163171 }
164172 }
0 commit comments