Skip to content

Conversation

@Aarchi-07
Copy link

  • Converted the existing Python notebook into a JavaScript implementation.
  • Maintained the same logic, structure, and functionality as the original code.
  • Improved code readability and consistency with JS best practices.

@github-actions github-actions bot added the status:awaiting review PR awaiting review from a maintainer label Oct 29, 2025
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @Aarchi-07, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a new JavaScript quickstart notebook, Models.txt, which is a direct translation of an existing Python notebook. The primary goal is to provide JavaScript developers with a clear guide on how to interact with the Gemini API to discover and inspect available models, including filtering by capabilities and retrieving detailed specifications like token limits. It also emphasizes secure API key management practices.

Highlights

  • New JavaScript Quickstart Notebook: A new notebook, Models.txt, has been added to the quickstarts-js directory, providing a JavaScript implementation for interacting with the Gemini API.
  • Python to JavaScript Conversion: The content of the new notebook is a direct conversion of an existing Python notebook, ensuring that the original logic, structure, and functionality are preserved while adhering to JavaScript best practices.
  • Gemini API Model Management: The notebook demonstrates how to programmatically list all available Gemini API models, filter them based on supported actions (e.g., embedContent), and retrieve detailed information about specific models, including their input and output token limits.
  • Secure API Key Configuration: Instructions and code examples are included for securely configuring the Gemini API key using environment variables, promoting best practices for sensitive information handling.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds a JavaScript version of the 'Models' notebook. The conversion is well-done and maintains the structure of the original. However, there are several areas for improvement regarding JavaScript best practices and API efficiency. Specifically, variables are declared in the global scope, the model list is fetched multiple times, and model lookup is done by iterating the full list instead of using a direct get method. I've left specific suggestions for these points. Additionally, as per the repository's style guide, the new notebook should be added to the quickstarts-js/README.md file to make it discoverable.

Comment on lines +223 to +229
models = await ai.models.list();

for await (model of models) {
if (model.name === "models/gemini-2.5-flash") {
console.log(model);
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

Instead of fetching all models and iterating through them to find a specific one, it's more efficient to use the ai.models.get() method. This allows you to retrieve a model's details directly by its name.

const modelInfo = await ai.models.get("models/gemini-2.5-flash");
console.log(modelInfo);

Comment on lines +41 to +45
module = await import("https://esm.sh/@google/[email protected]");
GoogleGenAI = module.GoogleGenAI;
ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });

MODEL_ID = "gemini-2.5-flash" // ["gemini-2.5-flash-lite", "gemini-2.5-flash", "gemini-2.5-pro"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

It's a good practice in JavaScript to declare variables with const or let to avoid polluting the global scope. I've updated the declarations to use const. Also, the MODEL_ID variable was declared but never used, so I've removed it to improve code clarity.

const module = await import("https://esm.sh/@google/[email protected]");
const GoogleGenAI = module.GoogleGenAI;
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });

*/

// [CODE STARTS]
models = await ai.models.list();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The ai.models.list() method is called multiple times in this notebook (here, and on lines 192 and 223). To improve performance and avoid redundant API calls, you should call this method once, store the result in a variable, and then reuse that variable throughout the notebook.

@Aarchi-07 Aarchi-07 changed the title Added Models.ipynb notebook to JavaScript Added Models.ipynb notebook for JavaScript Oct 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status:awaiting review PR awaiting review from a maintainer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant