https://github.com/xavidop/genkitx-huggingface
Community Plugin for Genkit to use Hugging Face Models using Inference Providers
https://github.com/xavidop/genkitx-huggingface
ai firebase generative-ai genkit genkit-plugin genkitx plugin
Last synced: 2 months ago
JSON representation
Community Plugin for Genkit to use Hugging Face Models using Inference Providers
- Host: GitHub
- URL: https://github.com/xavidop/genkitx-huggingface
- Owner: xavidop
- License: apache-2.0
- Created: 2025-02-23T17:42:49.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-03-03T11:00:02.000Z (2 months ago)
- Last Synced: 2025-03-03T11:39:57.445Z (2 months ago)
- Topics: ai, firebase, generative-ai, genkit, genkit-plugin, genkitx, plugin
- Language: TypeScript
- Homepage: https://xavidop.github.io/genkitx-huggingface/
- Size: 377 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-genkit - `genkitx-huggingface` - Plugin for Hugging Face Inference APIs. (Plugins / JavaScript - Community)
README

Firebase Genkit <> Hugging Face Models PluginHugging Face Models Community Plugin for Google Firebase Genkit
![]()
![]()
![]()
![]()
![]()
![]()
![]()
**`genkitx-huggingface`** is a community plugin for using Hugging Face Models APIs with
[Firebase Genkit](https://github.com/firebase/genkit). Built by [**Xavier Portilla Edo**](https://github.com/xavidop).This Genkit plugin allows to use Hugging Face models through their official APIs.
## Installation
Install the plugin in your project with your favorite package manager:
- `npm install genkitx-huggingface`
- `pnpm add genkitx-huggingface`## Usage
### Configuration
To use the plugin, you need to configure it with your Hugging Face Token key. You can do this by calling the `genkit` function:
```typescript
import { genkit, z } from 'genkit';
import { huggingface, openAIGpt4o } from "genkitx-huggingface";const ai = genkit({
plugins: [
huggingface({
huggingfaceToken: '',
}),
openAIGpt4o,
]
});
```You can also initialize the plugin in this way if you have set the `HUGGINGFACE_TOKEN` environment variable:
```typescript
import { genkit, z } from 'genkit';
import { huggingface, openAIGpt4o } from "genkitx-huggingface";const ai = genkit({
plugins: [
huggingface({
huggingfaceToken: '',
}),
openAIGpt4o,
]
});
```### Basic examples
The simplest way to call the text generation model is by using the helper function `generate`:
```typescript
import { genkit, z } from 'genkit';
import { huggingface, openAIGpt4o } from "genkitx-huggingface";// Basic usage of an LLM
const response = await ai.generate({
prompt: 'Tell me a joke.',
});console.log(await response.text);
```### Within a flow
```typescript
// ...configure Genkit (as shown above)...export const myFlow = ai.defineFlow(
{
name: 'menuSuggestionFlow',
inputSchema: z.string(),
outputSchema: z.string(),
},
async (subject) => {
const llmResponse = await ai.generate({
prompt: `Suggest an item for the menu of a ${subject} themed restaurant`,
});return llmResponse.text;
}
);
```### Tool use
```typescript
// ...configure Genkit (as shown above)...const specialToolInputSchema = z.object({ meal: z.enum(["breakfast", "lunch", "dinner"]) });
const specialTool = ai.defineTool(
{
name: "specialTool",
description: "Retrieves today's special for the given meal",
inputSchema: specialToolInputSchema,
outputSchema: z.string(),
},
async ({ meal }): Promise => {
// Retrieve up-to-date information and return it. Here, we just return a
// fixed value.
return "Baked beans on toast";
}
);const result = ai.generate({
tools: [specialTool],
prompt: "What's for breakfast?",
});console.log(result.then((res) => res.text));
```For more detailed examples and the explanation of other functionalities, refer to the [official Genkit documentation](https://firebase.google.com/docs/genkit/get-started).
## Supported models
This plugin supports all currently available **Chat/Completion** and **Embeddings** models from Hugging Face Models. This plugin supports image input and multimodal models.
## API Reference
This plugin supports all Hugging Face models available in the [Inference Providers on the Hub](https://huggingface.co/blog/inference-providers).
## Contributing
Want to contribute to the project? That's awesome! Head over to our [Contribution Guidelines](https://github.com/xavidop/genkitx-huggingface/blob/main/CONTRIBUTING.md).
## Need support?
> [!NOTE]
> This repository depends on Google's Firebase Genkit. For issues and questions related to Genkit, please refer to instructions available in [Genkit's repository](https://github.com/firebase/genkit).Reach out by opening a discussion on [GitHub Discussions](https://github.com/xavidop/genkitx-huggingface/discussions).
## Credits
This plugin is proudly maintained by Xavier Portilla Edo [**Xavier Portilla Edo**](https://github.com/xavidop).
I got the inspiration, structure and patterns to create this plugin from the [Genkit Community Plugins](https://github.com/TheFireCo/genkit-plugins) repository built by the [Fire Compnay](https://github.com/TheFireCo) as well as the [ollama plugin](https://firebase.google.com/docs/genkit/plugins/ollama).
## License
This project is licensed under the [Apache 2.0 License](https://github.com/xavidop/genkitx-huggingface/blob/main/LICENSE).
[](https://github.com/xavidop/genkitx-huggingface/blob/main/LICENSE)