Skip to content

Commit a81f086

Browse files
StephenHodgsonAndriesGeensPXLBRXAndriesGeens89
authored
com.openai.unity 8.8.1 (#394)
- updated realtime audio transcription settings properties - bumped deps --------- Co-authored-by: AG3D <[email protected]> Co-authored-by: Andries Geens <[email protected]>
1 parent c45a8f5 commit a81f086

File tree

6 files changed

+75
-19
lines changed

6 files changed

+75
-19
lines changed

OpenAI/Packages/com.openai.unity/Runtime/Realtime/ClientSecret.cs.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

OpenAI/Packages/com.openai.unity/Runtime/Realtime/ExpiresAfter.cs.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

OpenAI/Packages/com.openai.unity/Runtime/Realtime/InputAudioTranscriptionSettings.cs

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,43 @@
22

33
using Newtonsoft.Json;
44
using OpenAI.Models;
5+
using UnityEngine.Scripting;
56

67
namespace OpenAI.Realtime
78
{
9+
[Preserve]
810
public sealed class InputAudioTranscriptionSettings
911
{
12+
[Preserve]
13+
public InputAudioTranscriptionSettings(Model model, string prompt = null, string language = null)
14+
{
15+
Model = string.IsNullOrWhiteSpace(model?.Id) ? Models.Model.Whisper1 : model;
16+
Prompt = prompt;
17+
Language = language;
18+
}
19+
20+
[Preserve]
1021
[JsonConstructor]
11-
public InputAudioTranscriptionSettings([JsonProperty("model")] Model model)
22+
internal InputAudioTranscriptionSettings(
23+
[JsonProperty("model")] string model,
24+
[JsonProperty("prompt")] string prompt = null,
25+
[JsonProperty("language")] string language = null)
1226
{
13-
Model = string.IsNullOrWhiteSpace(model.Id) ? "whisper-1" : model;
27+
Model = model;
28+
Prompt = prompt;
29+
Language = language;
1430
}
1531

32+
[Preserve]
1633
[JsonProperty("model")]
1734
public string Model { get; }
35+
36+
[Preserve]
37+
[JsonProperty("prompt")]
38+
public string Prompt { get; }
39+
40+
[Preserve]
41+
[JsonProperty("language")]
42+
public string Language { get; }
1843
}
1944
}

OpenAI/Packages/com.openai.unity/Runtime/Realtime/Options.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,7 @@ public Options(
104104
: instructions;
105105
InputAudioFormat = inputAudioFormat;
106106
OutputAudioFormat = outputAudioFormat;
107-
InputAudioTranscriptionSettings = new(string.IsNullOrWhiteSpace(transcriptionModel)
108-
? "whisper-1"
109-
: transcriptionModel);
107+
InputAudioTranscriptionSettings = new(transcriptionModel);
110108
VoiceActivityDetectionSettings = turnDetectionSettings ?? new();
111109
tools.ProcessTools<Tool>(toolChoice, out var toolList, out var activeTool);
112110
Tools = toolList?.Where(t => t.IsFunction).Select(tool =>

OpenAI/Packages/com.openai.unity/Runtime/Realtime/SessionConfiguration.cs

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,57 @@
33
using Newtonsoft.Json;
44
using OpenAI.Extensions;
55
using OpenAI.Models;
6+
using System;
67
using System.Collections.Generic;
78
using System.Linq;
89
using UnityEngine.Scripting;
910

1011
namespace OpenAI.Realtime
1112
{
13+
[Preserve]
1214
public sealed class SessionConfiguration
1315
{
16+
[Obsolete("use new ctor overload")]
17+
public SessionConfiguration(
18+
Model model,
19+
Modality modalities,
20+
Voice voice,
21+
string instructions,
22+
RealtimeAudioFormat inputAudioFormat,
23+
RealtimeAudioFormat outputAudioFormat,
24+
Model transcriptionModel,
25+
IVoiceActivityDetectionSettings turnDetectionSettings,
26+
IEnumerable<Tool> tools,
27+
string toolChoice,
28+
float? temperature,
29+
int? maxResponseOutputTokens,
30+
int? expiresAfter)
31+
: this(
32+
model: model,
33+
modalities: modalities,
34+
voice: voice,
35+
instructions: instructions,
36+
inputAudioFormat: inputAudioFormat,
37+
outputAudioFormat: outputAudioFormat,
38+
inputAudioTranscriptionSettings: new(transcriptionModel),
39+
turnDetectionSettings: turnDetectionSettings,
40+
tools: tools,
41+
toolChoice: toolChoice,
42+
temperature: temperature,
43+
maxResponseOutputTokens: maxResponseOutputTokens,
44+
expiresAfter: expiresAfter)
45+
{
46+
}
47+
48+
[Preserve]
1449
public SessionConfiguration(
1550
Model model,
1651
Modality modalities = Modality.Text | Modality.Audio,
1752
Voice voice = null,
1853
string instructions = null,
1954
RealtimeAudioFormat inputAudioFormat = RealtimeAudioFormat.PCM16,
2055
RealtimeAudioFormat outputAudioFormat = RealtimeAudioFormat.PCM16,
21-
Model transcriptionModel = null,
56+
InputAudioTranscriptionSettings inputAudioTranscriptionSettings = null,
2257
IVoiceActivityDetectionSettings turnDetectionSettings = null,
2358
IEnumerable<Tool> tools = null,
2459
string toolChoice = null,
@@ -27,11 +62,9 @@ public SessionConfiguration(
2762
int? expiresAfter = null)
2863
{
2964
ClientSecret = new ClientSecret(expiresAfter);
30-
Model = string.IsNullOrWhiteSpace(model.Id)
31-
? Models.Model.GPT4oRealtime
32-
: model;
65+
Model = string.IsNullOrWhiteSpace(model?.Id) ? Models.Model.GPT4oRealtime : model;
3366
Modalities = modalities;
34-
Voice = voice ?? OpenAI.Voice.Alloy;
67+
Voice = string.IsNullOrWhiteSpace(voice?.Id) ? OpenAI.Voice.Alloy : voice;
3568
Instructions = string.IsNullOrWhiteSpace(instructions)
3669
? "Your knowledge cutoff is 2023-10. You are a helpful, witty, and friendly AI. Act like a human, " +
3770
"but remember that you aren't a human and that you can't do human things in the real world. " +
@@ -42,9 +75,7 @@ public SessionConfiguration(
4275
: instructions;
4376
InputAudioFormat = inputAudioFormat;
4477
OutputAudioFormat = outputAudioFormat;
45-
InputAudioTranscriptionSettings = new(string.IsNullOrWhiteSpace(transcriptionModel)
46-
? Models.Model.Whisper1
47-
: transcriptionModel);
78+
InputAudioTranscriptionSettings = inputAudioTranscriptionSettings;
4879
VoiceActivityDetectionSettings = turnDetectionSettings ?? new ServerVAD();
4980
tools.ProcessTools<Tool>(toolChoice, out var toolList, out var activeTool);
5081
Tools = toolList?.Where(t => t.IsFunction).Select(tool =>
@@ -66,6 +97,7 @@ public SessionConfiguration(
6697
}
6798
}
6899

100+
[Preserve]
69101
internal SessionConfiguration(
70102
string model,
71103
Modality modalities,
@@ -94,6 +126,7 @@ internal SessionConfiguration(
94126
MaxResponseOutputTokens = maxResponseOutputTokens;
95127
}
96128

129+
[Preserve]
97130
[JsonConstructor]
98131
internal SessionConfiguration(
99132
[JsonProperty("client_secret")] ClientSecret clientSecret,

OpenAI/Packages/com.openai.unity/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"name": "com.openai.unity",
33
"displayName": "OpenAI",
4-
"description": "A OpenAI package for the Unity Game Engine to use GPT-4, GPT-3.5, GPT-3 and Dall-E though their RESTful API (currently in beta).\n\nIndependently developed, this is not an official library and I am not affiliated with OpenAI.\n\nAn OpenAI API account is required.",
4+
"description": "A OpenAI package for the Unity to use though their RESTful API.\n\nIndependently developed, this is not an official library and I am not affiliated with OpenAI.\n\nAn OpenAI API account is required.",
55
"keywords": [],
6-
"version": "8.8.0",
6+
"version": "8.8.1",
77
"unity": "2021.3",
88
"documentationUrl": "https://github.com/RageAgainstThePixel/com.openai.unity#documentation",
99
"changelogUrl": "https://github.com/RageAgainstThePixel/com.openai.unity/releases",
@@ -17,9 +17,9 @@
1717
"url": "https://github.com/StephenHodgson"
1818
},
1919
"dependencies": {
20-
"com.utilities.encoder.wav": "2.2.3",
20+
"com.utilities.encoder.wav": "2.2.4",
2121
"com.utilities.rest": "3.3.8",
22-
"com.utilities.websockets": "1.0.4"
22+
"com.utilities.websockets": "1.0.5"
2323
},
2424
"samples": [
2525
{

0 commit comments

Comments
 (0)