Gemini Nano Wrapper - A client-side built-in AI Model for the web browser [Chrome] Read Google docs
A lightweight wrapper for the Gemini Nano package, designed to simplify interactions and streamline the integration process. This wrapper enhances usability by providing a more intuitive interface for utilizing Gemini Nano's features.
This Wrapper is built on top of the browser's in-built Gemini nano which is window.ai just plug it and start using prompts.
Since this is an experimental feature, for the initial setup please Refer the documentation, Please make sure the code is running in your local browser this setup is not for the server.
To install the Gemini Nano Wrapper, use npm:
npm install gemini-nano-prompt
Let's start, It's simple to use:
import GeminiNano from "gemini-nano-prompt";
let geminiNano = new GeminiNano(); // by default topK : 3 and temperature : 0.8
let response = await geminiNano.prompt("Hi What is Gemini Nano");
console.log("This is a Gemini response :", response);
for Fine tuning
import GeminiNano from "gemini-nano-prompt";
let geminiNano = new GeminiNano( { topK : 8 , temperature : 0. 9 } );
let response = await geminiNano.prompt("Hi What is Gemini Nano");
console.log("This is a Gemini response :", response);
The following are the API Interface:
interface CustomCapabilities {
topK : Number,
temperature : Number
}
constructor(customCapabilities?: CustomCapabilities )
Checks environment for required specification and Create a session for prompting( pass assistant) or summarize(pass summarizer) returns session created sucessfully or not
public async createSession(sessionType: "assistant" | "summarizer" = "assistant"): Promise<boolean>
closes a session : please close session every time for better browser performace
public closeSession(): void
use this for prompting this will automatically checks browser requirement and checks the eligibilty for gemini nano and creates and closes a session for every prompt call
public async prompt(query: string): Promise<{ response: any } | void>
use this for getting summury this will automatically checks browser requirement and checks the eligibilty for gemini nano and creates and closes a session for every prompt call
public async summarizer(query: string): Promise<{ response: any } | void>
import GeminiNano from "gemini-nano-prompt";
class Prompt {
constructor() {}
async getFAQs(listOfTopics, question) {
let geminiNano = new GeminiNano()
let prompt = `Answer the Questions Only related topics which is : ${listOfTopics} The Question is : ${question} if is not relavent topics: ${listOfTopics} Rspond with a Apology note`;
console.log(prompt);
let result = await geminiNano.prompt(prompt)
return result;
}
}
const prompt = new Prompt();
export default prompt
Thank you for considering contributing to My Project! We appreciate your help in making this project better. Here are some guidelines to help you get started.
- Click the "Fork" button at the top right of this page.
- This will create a copy of the repository in your GitHub account.
Clone your forked repository to your local machine using the following command:
git clone [https://github.com/your-username/my-project.git](https://github.com/Rajath2000/gemini-nano-web.git)
npm install
This project is licensed under the ISC License.
ISC License
Copyright (c) [2024] [Rajath M R]
Permission to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, is hereby granted, free of charge, subject to the following conditions:
THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.