diff --git a/OpenAI-DotNet-Tests/TestFixture_12_Threads.cs b/OpenAI-DotNet-Tests/TestFixture_12_Threads.cs
index 43c89c8d..495b13ab 100644
--- a/OpenAI-DotNet-Tests/TestFixture_12_Threads.cs
+++ b/OpenAI-DotNet-Tests/TestFixture_12_Threads.cs
@@ -403,6 +403,23 @@ public async Task Test_07_01_SubmitToolOutput()
// waiting while run in Queued and InProgress
run = await run.WaitForStatusChangeAsync();
Assert.AreEqual(RunStatus.Completed, run.Status);
+ runStepList = await run.ListRunStepsAsync();
+
+ foreach (var runStep in runStepList.Items)
+ {
+ Assert.IsNotNull(runStep);
+ Assert.IsNotNull(runStep.Client);
+ var retrievedRunStep = await runStep.UpdateAsync();
+ Assert.IsNotNull(retrievedRunStep);
+ Console.WriteLine($"[{runStep.Id}] {runStep.Status} {runStep.CreatedAt} -> {(runStep.ExpiresAtUnixTimeSeconds.HasValue ? runStep.ExpiresAt : runStep.CompletedAt)}");
+ if (runStep.StepDetails.ToolCalls == null) { continue; }
+
+ foreach (var runStepToolCall in runStep.StepDetails.ToolCalls)
+ {
+ Console.WriteLine($"[{runStep.Id}][{runStepToolCall.Type}][{runStepToolCall.Id}] {runStepToolCall.FunctionCall.Name}: {runStepToolCall.FunctionCall.Output}");
+ }
+ }
+
var messages = await run.ListMessagesAsync();
Assert.IsNotNull(messages);
Assert.IsNotEmpty(messages.Items);
diff --git a/OpenAI-DotNet/OpenAI-DotNet.csproj b/OpenAI-DotNet/OpenAI-DotNet.csproj
index bddb5a37..98fcc04e 100644
--- a/OpenAI-DotNet/OpenAI-DotNet.csproj
+++ b/OpenAI-DotNet/OpenAI-DotNet.csproj
@@ -28,8 +28,10 @@ More context [on Roger Pincombe's blog](https://rogerpincombe.com/openai-dotnet-
OpenAI-DotNet.pfx
True
True
- 7.6.0
+ 7.6.1
+Version 7.6.1
+- Include Output in Threads.FunctionCall
Version 7.6.0
- Changed License to MIT
- Added OpenAI.Chat logprob parameters
diff --git a/OpenAI-DotNet/Threads/FunctionCall.cs b/OpenAI-DotNet/Threads/FunctionCall.cs
index 86862d35..6dbaa915 100644
--- a/OpenAI-DotNet/Threads/FunctionCall.cs
+++ b/OpenAI-DotNet/Threads/FunctionCall.cs
@@ -19,5 +19,12 @@ public sealed class FunctionCall
[JsonInclude]
[JsonPropertyName("arguments")]
public string Arguments { get; private set; }
+
+ ///
+ /// The output of the function. This will be null if the outputs have not been submitted yet.
+ ///
+ [JsonInclude]
+ [JsonPropertyName("output")]
+ public string Output { get; private set; }
}
-}
\ No newline at end of file
+}