Câu lệnh

Thao tác với câu lệnh là cách chính để bạn, với tư cách là một nhà phát triển ứng dụng, có tác động đến kết quả của các mô hình AI tạo sinh. Ví dụ: khi sử dụng LLM, bạn có thể tạo những câu lệnh có ảnh hưởng đến giọng điệu, định dạng, thời lượng và các đặc điểm khác của phản hồi của mô hình.

Genkit được thiết kế xung quanh tiền đề lời nhắc là mã. Bạn viết và duy trì lời nhắc trong tệp nguồn, theo dõi các thay đổi đối với các câu lệnh đó bằng cùng một phiên bản hệ thống kiểm soát mà bạn sử dụng cho mã của mình, đồng thời bạn triển khai chúng cùng với mã để gọi các mô hình AI tạo sinh của bạn.

Hầu hết các nhà phát triển sẽ thấy thư viện Dotprompt đi kèm đáp ứng nhu cầu của họ khi xử lý các câu lệnh trong Genkit. Tuy nhiên, phương án thay thế các phương pháp tiếp cận khác bằng cách làm việc trực tiếp với các câu lệnh.

Xác định câu lệnh

Hàm trợ giúp generate() của Genkit chấp nhận lời nhắc dạng chuỗi và bạn có thể gọi mô hình theo cách này cho các trường hợp sử dụng đơn giản.

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

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

Trong hầu hết các trường hợp, bạn sẽ cần đưa một số thông tin do khách hàng cung cấp vào câu lệnh của mình. Bạn có thể xác định một hàm để kết xuất chúng như thế này.

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'),
});

Một thiếu sót của việc xác định lời nhắc trong mã là việc kiểm thử yêu cầu thực thi chúng như một phần của luồng. Để tạo điều kiện lặp lại nhanh hơn, Genkit cung cấp một tiện ích để xác định lời nhắc của bạn và chạy chúng trong Giao diện người dùng dành cho nhà phát triển.

Dùng hàm definePrompt để đăng ký câu lệnh của bạn bằng Genkit.

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 }
    });
  }
);

Thao tác của lời nhắc xác định một hàm trả về đối tượng GenerateRequest có thể sử dụng với bất kỳ mô hình nào. Nếu muốn, bạn cũng có thể xác định một giản đồ đầu vào cho câu lệnh, vốn là giản đồ đầu vào cho một luồng. Lời nhắc cũng có thể xác định bất kỳ tuỳ chọn cấu hình mô hình phổ biến nào, chẳng hạn như nhiệt độ hoặc số lượng mã thông báo đầu ra.

Bạn có thể sử dụng lời nhắc này trong mã bằng hàm trợ giúp renderPrompt(). Cung cấp các biến đầu vào dự kiến theo câu lệnh và mô hình cần gọi.

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

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

Trong giao diện người dùng dành cho nhà phát triển Genkit, bạn có thể chạy bất kỳ câu lệnh nào mà bạn đã xác định theo cách này. Việc này cho phép bạn thử nghiệm với từng lời nhắc riêng lẻ ngoài phạm vi mà chúng có thể được sử dụng.

Dấu chấm

Genkit bao gồm thư viện Dotprompt, thư viện này bổ sung thêm cho lời nhắc.

  • Đang tải lời nhắc từ .prompt tệp nguồn
  • Mẫu dựa trên tay lái
  • Hỗ trợ các mẫu câu lệnh nhiều lượt và nội dung đa phương tiện
  • Định nghĩa giản đồ đầu vào và đầu ra một cách súc tích
  • Sử dụng thành thạo generate()