Skip to content

Commit

Permalink
Merge 438b76c into d153670
Browse files Browse the repository at this point in the history
  • Loading branch information
rlazo authored Sep 18, 2024
2 parents d153670 + 438b76c commit eb29b01
Show file tree
Hide file tree
Showing 8 changed files with 448 additions and 426 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -158,15 +158,16 @@ internal fun FunctionDeclaration.toInternal() =
name,
description,
Schema(
properties = getParameters().associate { it.name to it.toInternal() },
required = getParameters().map { it.name },
properties = parameters.mapValues { it.value.toInternal() },
required = parameters.keys.minus(optionalParameters.toSet()).toList(),
type = "OBJECT",
nullable = false,
),
)

internal fun <T> com.google.firebase.vertexai.type.Schema<T>.toInternal(): Schema =
internal fun com.google.firebase.vertexai.type.Schema.toInternal(): Schema =
Schema(
type.name,
type,
description,
format,
nullable,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* Copyright 2024 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.google.firebase.vertexai.type

/**
* A declared function that a model can be given access to in order to gain info or complete tasks.
*
* ```
* val getExchangeRate = FunctionDeclaration(
* name = "getExchangeRate",
* description = "Get the exchange rate for currencies between countries.",
* parameters = mapOf(
* "currencyFrom" to Schema.str("The currency to convert from."),
* "currencyTo" to Schema.str("The currency to convert to.")
* )
* )
* ```
*
* @param name The name of the function call, this should be clear and descriptive for the model.
* @param description A description of what the function does and its output.
* @param parameters A list of parameters that the function accepts.
* @param optionalParameters A list of parameters that can be omitted.
* @see Schema
*/
class FunctionDeclaration(
val name: String,
val description: String,
val parameters: Map<String, Schema>,
val optionalParameters: List<String> = emptyList(),
)
Loading

0 comments on commit eb29b01

Please sign in to comment.