From ae5bbc689f768413c144844216e47b60475f5dfb Mon Sep 17 00:00:00 2001 From: Avery Aube Date: Fri, 20 Dec 2024 15:04:39 -0400 Subject: [PATCH 1/2] feat: support for file search tool calls --- .../run/RunStepDetails.kt | 65 ++++++++++++++++++- 1 file changed, 63 insertions(+), 2 deletions(-) diff --git a/openai-core/src/commonMain/kotlin/com.aallam.openai.api/run/RunStepDetails.kt b/openai-core/src/commonMain/kotlin/com.aallam.openai.api/run/RunStepDetails.kt index 2c7220a7..0f25af83 100644 --- a/openai-core/src/commonMain/kotlin/com.aallam.openai.api/run/RunStepDetails.kt +++ b/openai-core/src/commonMain/kotlin/com.aallam.openai.api/run/RunStepDetails.kt @@ -47,8 +47,8 @@ public data class MessageCreation( public data class ToolCallStepDetails( /** * An array of tool calls the run step was involved in. - * These can be associated with one of three types of tools: - * [ToolCallStep.CodeInterpreter], [ToolCallStep.RetrievalTool], or [ToolCallStep.FunctionTool]. + * These can be associated with one of four types of tools: + * [ToolCallStep.CodeInterpreter], [ToolCallStep.RetrievalTool], [ToolCallStep.FunctionTool], or [ToolCallStep.FileSearchTool]. */ @SerialName("tool_calls") public val toolCalls: List? = null, ) : RunStepDetails @@ -98,6 +98,20 @@ public sealed interface ToolCallStep { */ @SerialName("function") public val function: FunctionToolCallStep, ) : ToolCallStep + + @BetaOpenAI + @Serializable + @SerialName("file_search") + public data class FileSearchTool( + /** + * The ID of the tool call object. + */ + @SerialName("id") public val id: ToolCallStepId, + /** + * The options and results of the file search. + */ + @SerialName("file_search") public val fileSearch: FileSearchToolCallStep, + ) : ToolCallStep } @BetaOpenAI @@ -119,6 +133,53 @@ public data class FunctionToolCallStep( @SerialName("output") public val output: String? = null, ) +@BetaOpenAI +@Serializable +public data class FileSearchToolCallStep( + /** + * The configured options for ranking. + */ + @SerialName("ranking_options") public val rankingOptions: FileSearchToolCallRankingOptions, + + /** + * The returned results of the file search, ordered by score. + */ + @SerialName("results") public val results: List, +) + +@BetaOpenAI +@Serializable +public data class FileSearchToolCallRankingOptions( + /** + * The configured ranker. + */ + public val ranker: String, + + /** + * The configured score threshold. + */ + @SerialName("score_threshold") public val scoreThreshold: Double, +) + +@BetaOpenAI +@Serializable +public data class FileSearchToolCallResult( + /** + * The ID of the file object. + */ + @SerialName("file_id") public val fileId: FileId, + + /** + * The original filename of the file object. + */ + @SerialName("file_name") public val fileName: String, + + /** + * The score given to the provided result. + */ + @SerialName("score") public val score: Double, +) + @BetaOpenAI @Serializable public data class CodeInterpreterToolCall( From 6de8570270910de06ce90407aae2de33035f5f3e Mon Sep 17 00:00:00 2001 From: Mouaad Aallam Date: Fri, 31 Jan 2025 11:20:30 +0100 Subject: [PATCH 2/2] Update openai-core/src/commonMain/kotlin/com.aallam.openai.api/run/RunStepDetails.kt --- .../kotlin/com.aallam.openai.api/run/RunStepDetails.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openai-core/src/commonMain/kotlin/com.aallam.openai.api/run/RunStepDetails.kt b/openai-core/src/commonMain/kotlin/com.aallam.openai.api/run/RunStepDetails.kt index 0f25af83..12601951 100644 --- a/openai-core/src/commonMain/kotlin/com.aallam.openai.api/run/RunStepDetails.kt +++ b/openai-core/src/commonMain/kotlin/com.aallam.openai.api/run/RunStepDetails.kt @@ -153,7 +153,7 @@ public data class FileSearchToolCallRankingOptions( /** * The configured ranker. */ - public val ranker: String, + @SerialName("ranker") public val ranker: String, /** * The configured score threshold.