Skip to content

Commit 887ee79

Browse files
committed
Fix bug where API Key authorization doesn't work in WebGL
1 parent 9cf2768 commit 887ee79

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

Plugins/AIAvatarKitServiceWebGL.jslib

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
mergeInto(LibraryManager.library, {
2-
StartAIAvatarKitMessageStreamJS: function(targetObjectNamePtr, sessionIdPtr, urlPtr, aakStreamRequestPtr) {
2+
StartAIAvatarKitMessageStreamJS: function(targetObjectNamePtr, sessionIdPtr, urlPtr, aakStreamRequestPtr, aakHeadersPtr) {
33
let targetObjectName = UTF8ToString(targetObjectNamePtr);
44
let sessionId = UTF8ToString(sessionIdPtr);
55
let url = UTF8ToString(urlPtr);
66
let aakStreamRequest = UTF8ToString(aakStreamRequestPtr);
7+
let aakHeaders = JSON.parse(UTF8ToString(aakHeadersPtr));
78
let decoder = new TextDecoder("utf-8");
89

910
if (document.aakAbortController == null) {
1011
document.aakAbortController = new AbortController();
1112
}
1213

14+
let headers = { "Content-Type": "application/json" };
15+
for (let key in aakHeaders) {
16+
headers[key] = aakHeaders[key];
17+
}
1318
fetch(url, {
14-
headers: {
15-
"Content-Type": "application/json"
16-
},
19+
headers: headers,
1720
method: "POST",
1821
body: aakStreamRequest,
1922
signal: document.aakAbortController.signal

Scripts/LLM/AIAvatarKit/AIAvatarKitServiceWebGL.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public override bool IsEnabled
2424

2525
#if UNITY_WEBGL
2626
[DllImport("__Internal")]
27-
protected static extern void StartAIAvatarKitMessageStreamJS(string targetObjectName, string sessionId, string url, string chatCompletionRequest);
27+
protected static extern void StartAIAvatarKitMessageStreamJS(string targetObjectName, string sessionId, string url, string chatCompletionRequest, string aakHeaders);
2828
[DllImport("__Internal")]
2929
protected static extern void AbortAIAvatarKitMessageStreamJS();
3030

@@ -83,6 +83,12 @@ public override async UniTask StartStreamingAsync(AIAvatarKitSession aakSession,
8383
Debug.LogWarning("Custom headers for AIAvatarKit on WebGL is not supported for now.");
8484
}
8585

86+
var authHeader = new Dictionary<string, string>();
87+
if (!string.IsNullOrEmpty(ApiKey))
88+
{
89+
authHeader["Authorization"] = $"Bearer {ApiKey}";
90+
}
91+
8692
var serializedData = JsonConvert.SerializeObject(data);
8793

8894
if (DebugMode)
@@ -96,7 +102,8 @@ public override async UniTask StartStreamingAsync(AIAvatarKitSession aakSession,
96102
gameObject.name,
97103
sessionId,
98104
BaseUrl + "/chat",
99-
serializedData
105+
serializedData,
106+
JsonConvert.SerializeObject(authHeader)
100107
);
101108

102109
// Preprocessing response

0 commit comments

Comments
 (0)