File tree Expand file tree Collapse file tree 3 files changed +26
-3
lines changed
packages/vertexai/src/methods Expand file tree Collapse file tree 3 files changed +26
-3
lines changed Original file line number Diff line number Diff line change @@ -314,7 +314,7 @@ async function callVertexAI(app) {
314314 console . log ( '[VERTEXAI] start' ) ;
315315 const vertexAI = getVertexAI ( app ) ;
316316 const model = getGenerativeModel ( vertexAI , {
317- mode : 'prefer_on_device '
317+ mode : 'only_on_device '
318318 } ) ;
319319 const singleResult = await model . generateContent ( [
320320 { text : 'describe the following:' } ,
Original file line number Diff line number Diff line change @@ -194,7 +194,20 @@ describe('ChromeAdapter', () => {
194194 ) . to . be . false ;
195195 } ) ;
196196 } ) ;
197- describe ( 'generateContentOnDevice' , ( ) => {
197+ describe ( 'generateContent' , ( ) => {
198+ it ( 'throws if Chrome API is undefined' , async ( ) => {
199+ const adapter = new ChromeAdapter ( undefined , 'only_on_device' ) ;
200+ await expect (
201+ adapter . generateContent ( {
202+ contents : [ ]
203+ } )
204+ )
205+ . to . eventually . be . rejectedWith (
206+ VertexAIError ,
207+ 'Chrome AI requested for unsupported browser version.'
208+ )
209+ . and . have . property ( 'code' , VertexAIErrorCode . REQUEST_ERROR ) ;
210+ } ) ;
198211 it ( 'generates content' , async ( ) => {
199212 const languageModelProvider = {
200213 create : ( ) => Promise . resolve ( { } )
Original file line number Diff line number Diff line change @@ -63,14 +63,18 @@ export class ChromeAdapter {
6363 if ( this . mode === 'only_in_cloud' ) {
6464 return false ;
6565 }
66+
6667 const availability = await this . languageModelProvider ?. availability ( ) ;
68+
69+ // Triggers async model download so it'll be available next time.
6770 if ( availability === Availability . downloadable ) {
68- // Triggers async model download so it'll be available next time.
6971 this . download ( ) ;
7072 }
73+
7174 if ( this . mode === 'only_on_device' ) {
7275 return true ;
7376 }
77+
7478 // Applies prefer_on_device logic.
7579 return (
7680 availability === Availability . available &&
@@ -214,6 +218,12 @@ export class ChromeAdapter {
214218 // TODO: define a default value, since these are optional.
215219 options : LanguageModelCreateOptions
216220 ) : Promise < LanguageModel > {
221+ if ( ! this . languageModelProvider ) {
222+ throw new VertexAIError (
223+ VertexAIErrorCode . REQUEST_ERROR ,
224+ 'Chrome AI requested for unsupported browser version.'
225+ ) ;
226+ }
217227 // TODO: could we use this.onDeviceParams instead of passing in options?
218228 ChromeAdapter . addImageTypeAsExpectedInput ( options ) ;
219229 const newSession = await this . languageModelProvider ! . create ( options ) ;
You can’t perform that action at this time.
0 commit comments