Skip to content

Conversation

@apascal07
Copy link
Collaborator

@apascal07 apascal07 commented Dec 17, 2025

Fixes #3214 and #3746.

Checklist (if applicable):

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @apascal07, 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 enhances the Go Genkit framework by enabling the embedding of AI prompts directly into application binaries. This feature leverages Go's embed package to provide a more self-contained and easily distributable application, as prompts no longer need to be managed as separate files. It introduces new APIs for loading prompts from embedded filesystems and integrates this capability seamlessly into the Genkit initialization process, offering a flexible alternative to loading prompts from disk directories.

Highlights

  • Embedded Prompts Support: Introduced functionality to embed AI prompts directly into Go binaries using the embed.FS package, eliminating the need for external prompt files.
  • New Prompt Loading APIs: Added LoadPromptFS and LoadPromptFromFS functions in go/ai/prompt.go to handle loading prompts and partials from an fs.FS interface.
  • Genkit Initialization Integration: The genkit.Init function now accepts a new WithPromptFS option, allowing users to specify an embedded filesystem for prompts during application startup. The WithPromptDir option now clarifies its role as the root path within the embedded filesystem when used with WithPromptFS.
  • New Sample Application: A new sample go/samples/prompts-embed has been added, demonstrating how to effectively use embed.FS to include prompts in a Genkit application.
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 introduces the ability to load prompts from an embedded filesystem (io/fs.FS) in addition to the existing disk-based loading. Key changes include new LoadPromptFS functions in go/ai/prompt.go and go/genkit/genkit.go, a WithPromptFS option for genkit.Init, and refactoring of prompt loading logic. Comprehensive tests for the new embedded filesystem functionality have been added, along with a new sample (go/samples/prompts-embed) demonstrating its usage. The review comment points out an error in this new sample, where genkit.WithPromptFS is incorrectly called with two arguments; the root directory for embedded prompts should instead be specified using genkit.WithPromptDir in conjunction with WithPromptFS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

[Go] Add embedded filesystem option for easier prompt file management

2 participants