Open7

unity+ chatgptをwebglでできるようにする方法についての考察

Reyt0mReyt0m

gpt-3.5-turboをそのままunity内で動かす事はできるが、webglに組み込んだ上で、動かす事はできない。何故か?

  • Responseを受け取る前に次の動作に移動してしまう。
  • request responseの書式がwebglだと違う
    が考えられそう。
    前者についてはunitask
    後者はまだわからない
Reyt0mReyt0m

前者でunitaskを簡易的に実装したら上手く行った。

    {
        Debug.Log(newMessage);
        communicationHistory.Add(new MessageModel()
        {
            role = "user",
            content = newMessage
        });

        var apiUrl = "https://api.openai.com/v1/chat/completions";
        var jsonOptions = JsonUtility.ToJson(
            new CompletionRequestModel()
            {
                model = "gpt-3.5-turbo-0301",
                messages = communicationHistory
            }, true);
        var headers = new Dictionary<string, string>
            {
                {"Authorization", "Bearer " + apiKey},
                {"Content-type", "application/json"},
                {"X-Slack-No-Retry", "1"}
            };
        var request = new UnityWebRequest(apiUrl, "POST")
        {
            uploadHandler = new UploadHandlerRaw(Encoding.UTF8.GetBytes(jsonOptions)),
            downloadHandler = new DownloadHandlerBuffer()
        };
        foreach (var header in headers)
        {
            request.SetRequestHeader(header.Key, header.Value);
        }

        var operation = request.SendWebRequest();

        await operation;```
Reyt0mReyt0m

ただ、ここには膨大な数のエラーが現れるので、修正が必要になる。

主に起きるエラーはこの二つ
runntimeError: null function or function signature mismatch,RuntimeError: null function or function signature mismatch
abnormal situation has occurred: the PlayerLoop internal function has been called recursively. Please contact Customer Support with a sample project so that we can reproduce the problem and troubleshoot it.

Reyt0mReyt0m

github pagesを使って webglをアップロードしようとしてみたところ、次のようなエラーが出た
'''Unable to parse Build/docs.framework.js.gz! This can happen if build compression was enabled but web server hosting the content was misconfigured to not serve the file with HTTP Response Header "Content-Encoding: gzip" present. Check browser Console and Devtools Network tab to debug.'''

これをみるに、サーバーがまずいらしいのだが、githubは直せない、何かこちらの原因のはずだが。

Reyt0mReyt0m

これだけでは修正が効かない模様。ほかにも原因があるのかも。