Firebase Genkit
Genkit adalah framework yang didesain untuk membantu Anda membangun aplikasi dan fitur yang didukung teknologi AI. Library ini menyediakan library open source untuk Node.js dan Go, ditambah alat developer untuk pengujian dan proses debug.
Dokumentasi ini mencakup Genkit untuk Node.js. Jika Anda adalah developer Go, lihat dokumentasi Genkit Go.
Anda dapat men-deploy dan menjalankan library Genkit di mana pun Node.js didukung. Solusi ini dirancang untuk berfungsi dengan API model AI generatif atau database vektor. Meskipun kami menawarkan integrasi untuk Firebase dan Google Cloud, Anda dapat menggunakan Genkit secara terpisah dari layanan Google apa pun.
Kemampuan utama
API terpadu untuk pembuatan AI | Gunakan satu API untuk membuat atau melakukan streaming konten dari berbagai model AI. Berfungsi dengan input/output multimodal dan setelan model kustom. |
Pembuatan terstruktur | Buat atau streaming objek terstruktur (seperti JSON) dengan validasi bawaan. Sederhanakan integrasi dengan aplikasi Anda dan konversi data tidak terstruktur ke dalam format yang dapat digunakan. |
Panggilan alat | Izinkan model AI memanggil fungsi dan API Anda sebagai alat untuk menyelesaikan tugas. Model memutuskan kapan dan alat mana yang akan digunakan. |
Pembuatan hasil yang ditingkatkan | Tingkatkan akurasi dan relevansi output yang dihasilkan dengan mengintegrasikan data Anda. API sederhana membantu Anda menyematkan, mengindeks, dan mengambil informasi dari berbagai sumber. |
Template perintah | Buat perintah efektif yang mencakup template rich text, setelan model, dukungan multimodal, dan integrasi alat - semuanya dalam file perintah yang ringkas dan dapat dijalankan. |
Lihat contoh kode berikut untuk mendapatkan gambaran konkret tentang cara menggunakan kemampuan ini dalam kode:
Pembuatan dasar
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?',
});
Pembuatan terstruktur
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')
})
}
});
Panggilan alat
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? ',
});
Retrieval
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
});
Template perintah
---
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}}.
Alat pengembangan
Genkit menyediakan antarmuka command line (CLI) dan UI Developer lokal untuk mempermudah pembangunan aplikasi AI. Alat ini membantu Anda:
- Eksperimen: Menguji dan meningkatkan kualitas fungsi, perintah, dan kueri AI Anda.
- Debug: Menemukan dan memperbaiki masalah terkait rekaman aktivitas eksekusi yang mendetail.
- Evaluasi: Menilai hasil yang dihasilkan di beberapa kasus pengujian.
Ikuti kami
- Bergabunglah dengan komunitas: Dapatkan info terbaru, ajukan pertanyaan, dan bagikan karya Anda di server Discord kami.
- Berikan masukan: Laporkan masalah atau sarankan fitur baru menggunakan issue tracker GitHub kami.
Langkah berikutnya
Pelajari cara membangun aplikasi AI pertama Anda dengan Genkit dalam panduan Memulai kami.