Memperkenalkan Genkit untuk Go: Membangun aplikasi berteknologi AI skalabel di Go

JUL 17, 2024
Chris Gill Product Manager
Cameron Balahan Group Product Manager

Menyusul peluncuran Firebase Genkit untuk Node.js di Google I/O, tim Firebase dan Go berkolaborasi untuk menghadirkan Genkit ke komunitas Go. Kami sangat senang mengumumkan Genkit untuk Go, framework open source untuk membangun aplikasi berteknologi AI dan layanan cloud secara native di Go, dengan memanfaatkan kesederhanaan, skalabilitas, dan keamanan bahasa pemrograman ini yang sudah terkenal.

Dengan menggabungkan keunggulan serentak dan performa Go dengan library dan alat Genkit, developer bisa membuat aplikasi AI generatif yang memanfaatkan potensi kedua teknologi ini secara maksimal. Beberapa potensi kasus penggunaannya antara lain:

  • Asisten cerdas yang memahami permintaan kompleks dan menjalankan tugas secara otonom, seperti memesan tiket perjalanan atau membuat rencana perjalanan, semuanya disesuaikan dengan preferensi pengguna Anda.

  • Agen dukungan pelanggan yang menggunakan retrieval-augmented generation (RAG) untuk memberikan respons yang cepat, akurat, dan dipersonalisasi berdasarkan pusat informasi dan kebijakan perusahaan Anda.

  • Alat transformasi data yang efektif yang mengonversi data tidak terstruktur seperti bahasa natural menjadi format terstruktur (kueri SQL, tabel) untuk analisis dan insight yang mendalam.

Genkit untuk Go saat ini masih dalam versi alfa, membuatnya ideal untuk eksperimen dan eksplorasi. Kami mengajak Anda untuk membuat prototipe project berteknologi AI dan membagikan masukan kepada kami. Input Anda akan secara langsung membentuk roadmap Genkit untuk Go, membantu kami memberdayakan developer Go untuk membangun aplikasi AI generasi berikutnya yang siap produksi serta skalabel.


Library yang intuitif untuk pembuatan, pengambilan, dan alur kerja AI

Genkit adalah framework yang diprioritaskan bagi developer untuk membangun aplikasi berteknologi AI. Library Go kami, yang ditulis dalam bahasa Go murni, menganut idiom dan konvensi bahasa ini, sehingga langsung terasa familier dan produktif bagi developer Go. Genkit menyediakan abstraksi composable yang ringan untuk menyederhanakan pengembangan alur kerja AI yang canggih tanpa mengorbankan kemampuan kustomisasi dan kontrol.

Berikut adalah beberapa cara Genkit meningkatkan produktivitas Anda saat membangun aplikasi AI generatif:

  • API generasi terpadu: Buat konten dari berbagai model (Gemini, Gemma, atau pihak ketiga) menggunakan satu antarmuka yang konsisten. Konfigurasikan model secara mudah dan manfaatkan fitur-fitur canggih, seperti panggilan fungsi dan output terstruktur.

  • Dukungan database vektor native: Jadikan model AI Anda sadar konteks dengan mengintegrasikan retrieval augmented generation (RAG) ke dalam aplikasi Anda dengan pengindeksan sederhana dan API pengambilan yang bekerja di berbagai penyedia database vektor.

  • “Flows” untuk alur kerja AI: Kelola alur kerja AI multi-langkah dengan “flows” Genkit. Flows adalah fungsi yang menawarkan kemampuan observasi bawaan untuk proses debug dan pemantauan, integrasi dengan alat Genkit, serta deployment yang mudah sebagai endpoint HTTP dengan boilerplate minimal.
func main() {
    ctx := context.Background()
 
    // Initialize the Google AI plugin.
    if err := googleai.Init(ctx, nil); err != nil {
        log.Fatal(err)
    }
 
    // Define a simple flow that prompts an LLM to generate menu suggestions.
    // Flows are functions that integrate with Genkit tooling and provide
    // observability over multi-step workflows.
    genkit.DefineFlow("menuSuggestionFlow", func(ctx context.Context, input string) (string, error) {
 
        // Initialize gemini-1.5-flash model from Google AI.
        m := googleai.Model("gemini-1.5-flash")
        if m == nil {
            return "", errors.New("menuSuggestionFlow: failed to find model")
        }
 
        // Construct a request and send it to the model API (Google AI).
        resp, err := m.Generate(ctx,
            ai.NewGenerateRequest(
                &ai.GenerationCommonConfig{Temperature: 1},
                ai.NewUserTextMessage(fmt.Sprintf(`Suggest an item for the menu of a %s themed restaurant`, input))),
            nil)
        if err != nil {
            return "", err
        }
 
        // Handle the response from the model API.
        text, err := resp.Text()
        if err != nil {
            return "", fmt.Errorf("menuSuggestionFlow: %v", err)
        }
        return text, nil
    })
 
    // Initialize Genkit flows server.
    if err := genkit.Init(ctx, nil); err != nil {
        log.Fatal(err)
    }
}

Manajemen dan rekayasa perintah yang disempurnakan

Mencapai hasil generasi AI terbaik melibatkan pertimbangan yang cermat terhadap model, konfigurasi, perintah, dan bentuk output Anda. Genkit menyediakan Dotprompt, sebuah format file sederhana yang memudahkan proses rekayasa perintah Anda.

Dengan Dotprompt, Anda bisa menentukan template perintah yang kompleks, skema input dan output, pemilihan model, dan opsi konfigurasi model, semuanya dalam satu file .prompt. Ini membuat semuanya terorganisir, sehingga mempermudah pengujian, versi, dan men-deploy perintah bersama dengan kode Go Anda.

---
model: vertexai/gemini-1.5-pro
config:
  temperature: 0.9
input:
  schema:
    location: string
    style?: string
    name?: string
  default:
    location: a restaurant
---
 
You are the world's 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}}.

Mengintegrasikan Google dan layanan AI pihak ketiga

Sejatinya, Genkit untuk Go adalah framework yang ringan dan tidak bergantung pada penyedia. Kami menawarkan koleksi plugin yang terus bertambah untuk terintegrasi secara mulus dengan model tertentu, database vektor, dan layanan cloud dari Google dan penyedia pihak ketiga.

Pada rilis ini, Genkit untuk Go menyediakan plugin berikut:

  • Plugin Google Cloud Vertex AI: Akses Gemini dan model sematan dari Vertex AI, platform AI siap produksi Google Cloud. Dukungan untuk model pembuatan gambar Google, evaluator, model pihak ketiga dari Model Garden akan segera hadir.

  • Plugin Ollama: Akses dan jalankan model open source, seperti Gemma, Llama, dan Mistral secara lokal melalui Ollama.

  • Plugin Pinecone: Integrasikan dengan database vektor Pinecone untuk pengindeksan dan operasi pengambilan yang efisien.

  • Plugin telemetri Google Cloud: Ekspor log, metrik, dan rekaman aktivitas dari aplikasi berteknologi AI Anda ke Cloud Logging, Cloud Tracing, dan Firestore untuk pemantauan yang komprehensif.

Sistem plugin Genkit dirancang untuk terbuka dan dapat diperluas ke semua model, database vektor, evaluator, alat, dan lainnya. Kami secara aktif mendorong komunitas untuk berkontribusi pada ekosistem Genkit dengan memublikasikan plugin mereka sendiri.

Nantikan panduan pengembangan plugin Genkit untuk Go yang akan segera hadir ke dokumentasi kami!


Alat developer terintegrasi

Membangun aplikasi berteknologi AI memiliki tantangan unik, seperti membuat perintah yang efektif, melakukan proses debug output yang tidak terduga, mengoptimalkan proses pengambilan, dan lainnya. Kami percaya bahwa kompleksitas ini dapat diatasi dengan menggunakan alat khusus yang melampaui utilitas IDE pada umumnya.

CLI Genkit dan UI developer berbasis browser yang intuitif menyediakan alat yang efektif untuk mempermudah pengembangan AI generatif Anda.

Dengan alat ini Anda bisa:

  • Melakukan inisialisasi project Genkit baru dengan cepat atau mengintegrasikan Genkit ke dalam project yang sudah ada.

  • Menjalankan dan melakukan iterasi secara interaktif pada alur kerja AI Anda, perintah, kueri pengambilan, dan lainnya di arena khusus untuk komponen Genkit.

  • Melihat rekaman aktivitas dan metadata terperinci untuk alur kerja dan komponen yang Anda jalankan, memberikan kemampuan observasi penuh dan proses debug yang efisien.

  • Mengevaluasi alur kerja AI Anda terhadap set pengujian dan melihat metrik yang dinilai serta link ke rekaman aktivitas yang relevan.

Jika Anda suka bekerja dalam VS Code atau Project IDX, Anda bisa membuka UI developer Genkit di browser terintegrasi IDE dan menggunakannya berdampingan dengan kode Anda.


Kemampuan observasi produksi

Saat Anda siap untuk men-deploy, Genkit membantu memantau aplikasi berteknologi AI dalam produksi untuk memastikan aplikasi tersebut melayani pengguna seperti yang diharapkan. Plugin telemetri Google Cloud Genkit membantu Anda mengekspor log, metrik, dan rekaman aktivitas dengan mudah dari aplikasi berteknologi AI ke Operations Suite Google Cloud.

image1

Meskipun kami menyediakan integrasi Google Cloud secara langsung, kami mengimplementasikan instrumentasi Genkit melalui standar OpenTelemetri yang umum digunakan, serta bisa diintegrasikan dengan banyak platform kemampuan observasi populer.


Mulai

Kini setelah Genkit untuk Go tersedia dalam versi alfa, Anda bisa mulai menggunakannya untuk mengintegrasikan alur kerja AI ke dalam aplikasi Anda, dan bergabung dengan komunitas Go AI Developer yang terus berkembang.

Untuk memulai, lihat Panduan Mulai dengan Genkit untuk Go.

Anda juga bisa membuka template Genkit di ruang kerja IDX yang telah dikonfigurasi sebelumnya.

Kami sangat ingin berkolaborasi dengan Anda!

  • Terhubung dengan kami di server Discord Genkit untuk mendapatkan akses langsung ke tim Genkit, melihat pengumuman, mengajukan pertanyaan, dan mendiskusikan pengalaman Anda.

  • Ceritakan apa saja yang Anda bangun dengan Genkit pada bagian Show and Tell di forum diskusi.

Bersama-sama, mari kita bangun ekosistem yang efektif untuk pengembangan AI di Go. Kami tak sabar ingin segera melihat kreasi Anda dengan Genkit!