gemini-nano-prompt v1.0.5
Gemini Nano Wrapper - A client-side built-in AI Model for the web browser Chrome(https://developer.chrome.com/docs/ai/built-in)
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.
Table of Contents
Installation
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-promptUsage
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);API
The following are the API Interface:
constructor
interface CustomCapabilities {
topK : Number,
temperature : Number
}
constructor(customCapabilities?: CustomCapabilities )Methods
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>Examples
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 promptContributing
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.
How to Contribute
1. Fork the Repository
- Click the "Fork" button at the top right of this page.
- This will create a copy of the repository in your GitHub account.
2. Clone the Forked Repository
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)3. Install dependency
npm install4.Make changes, commit, create a pull request.
License
This project is licensed under the ISC License.
ISC License
ISC License
Copyright (c) 2024
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.