generate.yaml•4.13 kB
# Copyright 2025 Google LLC
# SPDX-License-Identifier: Apache-2.0
# This file describes the responses of /util/generate action
tests:
  - name: simple generate call
    input:
      {
        model: 'programmableModel',
        messages: [{ role: 'user', content: [{ text: 'hi' }] }],
        config: { temperature: 11 },
      }
    modelResponses:
      - {
          finishReason: 'stop',
          message: { role: 'model', content: [{ text: 'final response' }] },
        }
    expectResponse:
      {
        custom: {},
        finishReason: 'stop',
        message: { role: 'model', content: [{ text: 'final response' }] },
        request:
          {
            messages: [{ role: 'user', content: [{ text: 'hi' }] }],
            output: {},
            tools: [],
            config: { temperature: 11 },
          },
        usage: {},
      }
  - name: stream responses
    stream: true
    input:
      {
        model: 'programmableModel',
        messages: [{ role: 'user', content: [{ text: 'hi' }] }],
        config: { temperature: 11 },
      }
    streamChunks:
      - [
          { index: 0, role: 'model', content: [{ text: '3' }] },
          { index: 0, role: 'model', content: [{ text: '2' }] },
          { index: 0, role: 'model', content: [{ text: '1' }] },
        ]
    modelResponses:
      - {
          finishReason: 'stop',
          message: { role: 'model', content: [{ text: 'final response' }] },
        }
    expectChunks:
      [
        { index: 0, role: 'model', content: [{ text: '3' }] },
        { index: 0, role: 'model', content: [{ text: '2' }] },
        { index: 0, role: 'model', content: [{ text: '1' }] },
      ]
    expectResponse:
      {
        custom: {},
        finishReason: 'stop',
        message: { role: 'model', content: [{ text: 'final response' }] },
        request:
          {
            messages: [{ role: 'user', content: [{ text: 'hi' }] }],
            output: {},
            tools: [],
            config: { temperature: 11 },
          },
        usage: {},
      }
  - name: calls tools
    input:
      {
        model: 'programmableModel',
        messages: [{ role: 'user', content: [{ text: 'hi' }] }],
        config: { temperature: 11 },
        tools: ['testTool'],
      }
    modelResponses:
      - {
          message:
            {
              role: 'model',
              content:
                [
                  {
                    toolRequest: { name: 'testTool', input: {}, ref: 'ref123' },
                  },
                ],
            },
        }
      - { message: { role: 'model', content: [{ text: 'final response' }] } }
    expectResponse:
      {
        custom: {},
        message: { role: 'model', content: [{ text: 'final response' }] },
        request:
          {
            messages:
              [
                { role: 'user', content: [{ text: 'hi' }] },
                {
                  role: 'model',
                  content:
                    [
                      {
                        toolRequest:
                          { input: {}, name: 'testTool', ref: 'ref123' },
                      },
                    ],
                },
                {
                  role: 'tool',
                  content:
                    [
                      {
                        toolResponse:
                          {
                            name: 'testTool',
                            output: 'tool called',
                            ref: 'ref123',
                          },
                      },
                    ],
                },
              ],
            output: {},
            tools:
              [
                {
                  description: 'description',
                  inputSchema:
                    { $schema: 'http://json-schema.org/draft-07/schema#' },
                  name: 'testTool',
                  outputSchema:
                    { $schema: 'http://json-schema.org/draft-07/schema#' },
                },
              ],
            config: { temperature: 11 },
          },
        usage: {},
      }