İstem sayısı

İstem değiştirme, bir uygulama geliştirici olarak kendinizi etkilemenin üretken yapay zeka modellerinin çıktısı. Örneğin, LLM'leri kullanırken, farklı türde üslubu, biçimini, uzunluğunu ve diğer özelliklerini etkileyen istemler modellerin yanıtları.

Genkit, istemlerin kod olduğu ilkesi doğrultusunda tasarlanmıştır. Siz yazar, istemlerinizi kaynak dosyalarda tutmak, aynı sürümü kullanarak bu dosyalardaki değişiklikleri izlemek ve bunları kodla birlikte dağıtarak, kodunuz için kullandığınız denetim sistemini üretken yapay zeka modellerinizi kullanabilirsiniz.

Çoğu geliştirici, içerdiği Dotprompt kitaplığının , Genkit'teki istemlerle çalışma ihtiyaçlarını karşılıyor. Ancak, alternatif olarak yaklaşımları doğrudan istemlerle çalışmayla da desteklemektedir.

İstemleri tanımlama

Genkit'in generate() yardımcı işlevi dize istemlerini kabul eder. yaygın kullanım alanları için modeller oluşturabilirsiniz.

import { generate } from '@genkit-ai/ai';

generate({
  model: 'googleai/gemini-1.5-flash-latest',
  prompt: 'You are a helpful AI assistant named Walt.',
});

Çoğu durumda, müşteri tarafından sağlanan bazı girişleri isteminize dahil etmeniz gerekir. Bu şekilde oluşturmak için bir işlev tanımlayabilirsiniz.

function helloPrompt(name: string) {
  return `You are a helpful AI assistant named Walt. Say hello to ${name}.`;
}

generate({
  model: 'googleai/gemini-1.5-flash-latest',
  prompt: helloPrompt('Fred'),
});

Kodunuzda istemleri tanımlamadaki eksikliklerden biri, testin çalıştırılmasını ve bunları bir akışın parçası olarak ele alabilirsiniz. Genkit, iterasyon yani yineleme sürecini hızlandırmak için kullanarak istemlerinizi tanımlayın ve bunları Geliştirici arayüzünde çalıştırın.

İstemlerinizi Genkit'e kaydetmek için definePrompt işlevini kullanın.

import { definePrompt } from '@genkit-ai/ai';
import z from 'zod';

export const helloPrompt = definePrompt(
  {
    name: 'helloPrompt',
    inputSchema: z.object({ name: z.string() }),
  },
  async (input) => {
    const promptText = `You are a helpful AI assistant named Walt.
    Say hello to ${input.name}.`;

    return {
      messages: [{ role: 'user', content: [{ text: promptText }] }],
      config: { temperature: 0.3 }
    });
  }
);

İstem işlemi, GenerateRequest nesnesi döndüren bir işlevi tanımlar herhangi bir modelle kullanılabilir. İsterseniz bir giriş şeması da tanımlayabilirsiniz. Bu, akışın giriş şemasına benzer. İstemler, veya çıkış jetonlarının sayısını kontrol edin.

Bu istemi renderPrompt() yardımcı işleviyle kodunuzda kullanabilirsiniz. İstemin beklediği giriş değişkenlerini ve çağrılacak modeli sağlayın.

import { generate, render } from '@genkit-ai/ai';

generate(
  renderPrompt({
    prompt: helloPrompt,
    input: { name: 'Fred' },
    model: 'googleai/gemini-1.5-flash-latest',
  })
);

Genkit Geliştirici kullanıcı arayüzünde, bu şekilde tanımladığınız herhangi bir istemi çalıştırabilirsiniz. Böylece, şu kapsamın dışındaki her bir istemle ayrı ayrı denemeler yapabilirsiniz: akışlar ve akışlar yer alır.

Nokta istemi

Genkit, ek özellikler içeren Dotprompt kitaplığını içerir. işlev görebilir.

  • .prompt kaynak dosyadan istemler yükleniyor
  • Tutma çubuğu tabanlı şablonlar
  • Çok dönüşlü istem şablonları ve multimedya içeriği için destek
  • Kısa giriş ve çıkış şeması tanımları
  • generate() ile akıcı kullanım