diff --git a/generative-ai/snippets/function-calling/functionCallingBasic.js b/generative-ai/snippets/function-calling/functionCallingBasic.js deleted file mode 100644 index c3429cbbfd..0000000000 --- a/generative-ai/snippets/function-calling/functionCallingBasic.js +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// [START generativeaionvertexai_function_calling_basic] -const {GoogleGenAI} = require('@google/genai'); - -const tools = [ - { - functionDeclarations: [ - { - name: 'get_current_weather', - description: 'get weather in a given location', - parameters: { - type: 'OBJECT', - properties: { - location: {type: 'STRING'}, - unit: { - type: 'STRING', - enum: ['celsius', 'fahrenheit'], - }, - }, - required: ['location'], - }, - }, - ], - }, -]; - -/** - * TODO(developer): Update these variables before running the sample. - */ -async function functionCallingBasic( - projectId = 'PROJECT_ID', - location = 'us-central1', - model = 'gemini-2.5-flash' -) { - // Initialize client with your Cloud project and location - const client = new GoogleGenAI({ - vertexai: true, - project: projectId, - location: location, - }); - - const result = await client.models.generateContent({ - model: model, - contents: 'What is the weather in Boston?', - config: { - tools: tools, - }, - }); - console.log(JSON.stringify(result.functionCalls)); -} -// [END generativeaionvertexai_function_calling_basic] - -functionCallingBasic(...process.argv.slice(2)).catch(err => { - console.error(err.message); - process.exitCode = 1; -}); diff --git a/generative-ai/snippets/function-calling/functionCallingStreamContent.js b/generative-ai/snippets/function-calling/functionCallingStreamContent.js deleted file mode 100644 index c25bb995d2..0000000000 --- a/generative-ai/snippets/function-calling/functionCallingStreamContent.js +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// [START generativeaionvertexai_gemini_function_calling_content] -const {GoogleGenAI} = require('@google/genai'); - -const tools = [ - { - functionDeclarations: [ - { - name: 'get_current_weather', - description: 'get weather in a given location', - parameters: { - type: 'OBJECT', - properties: { - location: {type: 'STRING'}, - unit: {type: 'STRING', enum: ['celsius', 'fahrenheit']}, - }, - required: ['location'], - }, - }, - ], - }, -]; - -const functionResponseParts = [ - { - functionResponse: { - name: 'get_current_weather', - response: {name: 'get_current_weather', content: {weather: 'super nice'}}, - }, - }, -]; - -/** - * TODO(developer): Update these variables before running the sample. - */ -async function functionCallingStreamContent( - projectId = 'PROJECT_ID', - location = 'us-central1', - model = 'gemini-2.5-flash' -) { - // Initialize client with your Cloud project and location - const client = new GoogleGenAI({ - vertexai: true, - project: projectId, - location: location, - }); - - const request = [ - {role: 'user', parts: [{text: 'What is the weather in Boston?'}]}, - { - role: 'model', - parts: [ - { - functionCall: { - name: 'get_current_weather', - args: {location: 'Boston'}, - }, - }, - ], - }, - {role: 'user', parts: functionResponseParts}, - ]; - - const streamingResp = await client.models.generateContentStream({ - model: model, - contents: request, - config: {tools: tools}, - }); - - let completeResponseText = ''; - for await (const chunk of streamingResp) { - if (chunk.text) { - completeResponseText += chunk.text; - } - } - console.log(completeResponseText); -} -// [END generativeaionvertexai_gemini_function_calling_content] - -functionCallingStreamContent(...process.argv.slice(2)).catch(err => { - console.error(err.message); - process.exitCode = 1; -}); diff --git a/generative-ai/snippets/test/function-calling/functionCallingBasic.test.js b/generative-ai/snippets/test/function-calling/functionCallingBasic.test.js deleted file mode 100644 index 013baaf496..0000000000 --- a/generative-ai/snippets/test/function-calling/functionCallingBasic.test.js +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -'use strict'; - -const {assert} = require('chai'); -const {describe, it} = require('mocha'); -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const projectId = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; -const model = 'gemini-2.5-flash'; - -describe('Generative AI Function Calling', () => { - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - // const projectId = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_LOCATION'; - // const model = 'gemini-2.5-flash'; - - it('should define a function and have the model invoke it', async () => { - const output = execSync( - `node ./function-calling/functionCallingBasic.js ${projectId} ${location} ${model}` - ); - - // Assert that the response is what we expect - assert(output.length > 0); - }); -}); diff --git a/generative-ai/snippets/test/function-calling/functionCallingStreamContent.test.js b/generative-ai/snippets/test/function-calling/functionCallingStreamContent.test.js deleted file mode 100644 index f825df3a88..0000000000 --- a/generative-ai/snippets/test/function-calling/functionCallingStreamContent.test.js +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -'use strict'; - -const {assert} = require('chai'); -const {describe, it} = require('mocha'); -const cp = require('child_process'); -const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'}); - -const projectId = process.env.CAIP_PROJECT_ID; -const location = process.env.LOCATION; -const model = 'gemini-2.5-flash'; - -describe('Generative AI Function Calling Stream Content', () => { - /** - * TODO(developer): Uncomment these variables before running the sample.\ - * (Not necessary if passing values as arguments) - */ - // const projectId = 'YOUR_PROJECT_ID'; - // const location = 'YOUR_LOCATION'; - // const model = 'gemini-2.5-flash'; - - it('should create stream chat and begin the conversation the same in each instance', async () => { - const output = execSync( - `node ./function-calling/functionCallingStreamContent.js ${projectId} ${location} ${model}` - ); - - // Assert that the response is what we expect - assert(output.match(/super nice/), output); - }); -});