Firebase Genkit

জেনকিট হল একটি ফ্রেমওয়ার্ক যা আপনাকে এআই-চালিত অ্যাপ্লিকেশন এবং বৈশিষ্ট্যগুলি তৈরি করতে সাহায্য করার জন্য ডিজাইন করা হয়েছে। এটি Node.js এবং Go-এর জন্য ওপেন সোর্স লাইব্রেরি প্রদান করে, এছাড়াও টেস্টিং এবং ডিবাগিংয়ের জন্য ডেভেলপার টুল।

এই ডকুমেন্টেশন Node.js এর জন্য Genkit কভার করে। আপনি যদি একজন Go বিকাশকারী হন, Genkit Go ডকুমেন্টেশন দেখুন।

Node.js সমর্থিত যে কোন জায়গায় আপনি Genkit লাইব্রেরি স্থাপন ও চালাতে পারেন। এটি যেকোন জেনারেটিভ এআই মডেল এপিআই বা ভেক্টর ডাটাবেসের সাথে কাজ করার জন্য ডিজাইন করা হয়েছে। যদিও আমরা Firebase এবং Google ক্লাউডের জন্য ইন্টিগ্রেশন অফার করি, আপনি Genkit যেকোনও Google পরিষেবা থেকে স্বাধীনভাবে ব্যবহার করতে পারেন।

শুরু করুন

মূল ক্ষমতা

এআই জেনারেশনের জন্য ইউনিফাইড এপিআই বিভিন্ন এআই মডেল থেকে সামগ্রী তৈরি বা স্ট্রিম করতে একটি API ব্যবহার করুন। মাল্টিমডাল ইনপুট/আউটপুট এবং কাস্টম মডেল সেটিংসের সাথে কাজ করে।
কাঠামোগত প্রজন্ম অন্তর্নির্মিত বৈধতা সহ স্ট্রাকচার্ড অবজেক্ট (যেমন JSON) তৈরি বা স্ট্রিম করুন। আপনার অ্যাপের সাথে ইন্টিগ্রেশন সহজ করুন এবং অসংগঠিত ডেটাকে ব্যবহারযোগ্য বিন্যাসে রূপান্তর করুন।
টুল কলিং AI মডেলগুলিকে আপনার ফাংশন এবং APIগুলিকে কাজগুলি সম্পূর্ণ করার সরঞ্জাম হিসাবে কল করতে দিন। মডেল কখন এবং কোন সরঞ্জামগুলি ব্যবহার করবে তা নির্ধারণ করে।
পুনরুদ্ধার-বর্ধিত প্রজন্ম আপনার ডেটা একত্রিত করে উত্পন্ন আউটপুটের নির্ভুলতা এবং প্রাসঙ্গিকতা উন্নত করুন। সাধারণ APIগুলি আপনাকে বিভিন্ন উত্স থেকে এম্বেড, সূচক এবং তথ্য পুনরুদ্ধার করতে সহায়তা করে।
প্রম্পট টেমপ্লেটিং কার্যকর প্রম্পট তৈরি করুন যাতে সমৃদ্ধ পাঠ্য টেমপ্লেটিং, মডেল সেটিংস, মাল্টিমোডাল সমর্থন, এবং টুল ইন্টিগ্রেশন অন্তর্ভুক্ত থাকে - সবই একটি কমপ্যাক্ট, রানেবল প্রম্পট ফাইলের মধ্যে।

কোডে এই ক্ষমতাগুলি কীভাবে ব্যবহার করবেন তার একটি নির্দিষ্ট ধারণার জন্য নিম্নলিখিত কোড নমুনাগুলি দেখুন:

মৌলিক প্রজন্ম

import { generate } from `@genkit-ai/ai`;
import { gemini15Flash, claude3Sonnet, llama31 } from '@genkit-ai/vertexai';
import { gpt4o } from 'genkitx-openai';

// Use the same API to generate content from many models
const result = await generate({
    model: gemini15Flash, // Or use claude3Sonnet, llama31, gpt4o
    prompt: 'What makes you the best LLM out there?',
});

কাঠামোগত প্রজন্ম

import { generate } from `@genkit-ai/ai`;
import { gemini15Flash } from `@genkit-ai/googleai`;
import { z } from `zod`;

const result = await generate({
    model: gemini15Flash,
    prompt: 'Create a brief profile for a character in a fantasy video game.',
    // Specify output structure using Zod schema
    output: {
        schema: z.object({
            name: z.string(),
            role: z.enum(['knight', 'mage', 'archer']),
            backstory: z.string(),
            attacks: z.array(z.object({
              name: z.string(),
              damage: z.number().describe('amount of damage, between 2 and 25'),
            })).describe('3 attacks the character can use')
        })
    }
});

টুল কলিং

import { generate, defineTool } from `@genkit-ai/ai`;
import { gemini15Flash } from `@genkit-ai/googleai`;
import { z } from `zod`;

// Define tool to get weather data for a given location
const lookupWeather = defineTool({
    name: 'lookupWeather',
    description: 'Get the current weather in a location.',
    // Define input and output schema so the model knows how to use the tool
    inputSchema: z.object({
        location: z.string().describe('The location to get the weather for.'),
    }),
    outputSchema: z.object({
        temperature: z.number().describe('The current temperature in Fahrenheit.'),
        condition: z.string().describe('A brief description of the weather conditions.'),
    }),
    async (input) => {
        // Insert weather lookup API code
    }
});

const result = await generate({
    model: gemini15Flash,
    tools: [lookupWeather], // Give the model a list of tools it can call
    prompt: 'What is the weather like in New York? ',
});

পুনরুদ্ধার

import { generate, retrieve } from `@genkit-ai/ai`;
import { devLocalRetrieverRef } from '@genkit-ai/dev-local-vectorstore';
import { gemini15Flash } from `@genkit-ai/googleai`;

// Sample assumes Genkit documentation has been chunked, stored, and indexed in 
// local vectorstore in previous step.

// Reference to a local vector database storing Genkit documentation
const retriever = devLocalRetrieverRef('genkitQA');

const query = 'How do I retrieve relevant documents in Genkit?'

// Consistent API to retrieve most relevant documents based on semantic similarity to query
const docs = await retrieve({
    retriever: retriever,
    query: query,
    options: { limit: 5 },
});

const result = await generate({
    model: gemini15Flash
    prompt: 'Use the provided context from the Genkit documentation to answer this query: ${query}',
    context: docs // Pass retrieved documents to the model
});

প্রম্পট টেমপ্লেট

---
model: vertexai/gemini-1.5-flash
config:
  temperature: 0.9
input:
  schema:
    properties:
      location: {type: string}
      style: {type: string}
      name: {type: string}
    required: [location]
  default:
    location: a restaurant
---

You are the most welcoming AI assistant and are currently working at {{location}}.

Greet a guest{{#if name}} named {{name}}{{/if}}{{#if style}} in the style of {{style}}{{/if}}.

উন্নয়ন সরঞ্জাম

জেনকিট একটি কমান্ড-লাইন ইন্টারফেস (সিএলআই) এবং একটি স্থানীয় বিকাশকারী UI প্রদান করে যাতে এআই অ্যাপ্লিকেশন তৈরি করা সহজ হয়। এই সরঞ্জামগুলি আপনাকে সাহায্য করে:

  • পরীক্ষা: আপনার AI ফাংশন, প্রম্পট এবং প্রশ্নগুলি পরীক্ষা করুন এবং পরিমার্জন করুন।
  • ডিবাগ: বিস্তারিত এক্সিকিউশন ট্রেস সহ সমস্যাগুলি খুঁজুন এবং ঠিক করুন।
  • মূল্যায়ন করুন: একাধিক পরীক্ষার ক্ষেত্রে উত্পন্ন ফলাফল মূল্যায়ন করুন।

আমাদের সাথে সংযোগ করুন

  • সম্প্রদায়ে যোগ দিন: আপডেট থাকুন, প্রশ্ন জিজ্ঞাসা করুন এবং আমাদের ডিসকর্ড সার্ভারে আপনার কাজ শেয়ার করুন।
  • প্রতিক্রিয়া প্রদান করুন: আমাদের GitHub সমস্যা ট্র্যাকার ব্যবহার করে সমস্যাগুলি রিপোর্ট করুন বা নতুন বৈশিষ্ট্যগুলির পরামর্শ দিন।

পরবর্তী পদক্ষেপ

কিভাবে Genkit এর সাথে আপনার প্রথম AI অ্যাপ্লিকেশন তৈরি করবেন তা আমাদের শুরু করুন গাইডে শিখুন।