diff --git a/Editor.meta b/Editor.meta
new file mode 100644
index 0000000..ff7f6df
--- /dev/null
+++ b/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ac64a64a24d499f4e87fff134f32de9e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Editor/LinkXmlTransferer.cs b/Editor/LinkXmlTransferer.cs
new file mode 100644
index 0000000..18d94eb
--- /dev/null
+++ b/Editor/LinkXmlTransferer.cs
@@ -0,0 +1,26 @@
+using System.IO;
+using UnityEditor;
+using UnityEditor.Build;
+using UnityEditor.UnityLinker;
+using UnityEditor.Build.Reporting;
+
+namespace OpenAI
+{
+ public class LinkXmlTransferer : IUnityLinkerProcessor
+ {
+ private const string SearchFolder = "Packages/com.srcnalt.openai-unity/Resources";
+
+ int IOrderedCallback.callbackOrder => 0;
+
+ public string GenerateAdditionalLinkXmlFile(BuildReport report, UnityLinkerBuildPipelineData data)
+ {
+ string[] linkXmlGuid = AssetDatabase.FindAssets("link", new string[] { SearchFolder });
+ string linkXmlPath = AssetDatabase.GUIDToAssetPath(linkXmlGuid[0]);
+ return Path.GetFullPath(linkXmlPath);
+ }
+
+ public void OnBeforeRun(BuildReport report, UnityLinkerBuildPipelineData data) { }
+
+ public void OnAfterRun(BuildReport report, UnityLinkerBuildPipelineData data) { }
+ }
+}
diff --git a/Editor/LinkXmlTransferer.cs.meta b/Editor/LinkXmlTransferer.cs.meta
new file mode 100644
index 0000000..a7c6624
--- /dev/null
+++ b/Editor/LinkXmlTransferer.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2eb77ad81feeacd489b2009ae364fb18
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Editor/OpenAI.Editor.asmdef b/Editor/OpenAI.Editor.asmdef
new file mode 100644
index 0000000..c73561c
--- /dev/null
+++ b/Editor/OpenAI.Editor.asmdef
@@ -0,0 +1,16 @@
+{
+ "name": "OpenAI.Editor",
+ "rootNamespace": "",
+ "references": [],
+ "includePlatforms": [
+ "Editor"
+ ],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": true,
+ "defineConstraints": [],
+ "versionDefines": [],
+ "noEngineReferences": false
+}
\ No newline at end of file
diff --git a/Editor/OpenAI.Editor.asmdef.meta b/Editor/OpenAI.Editor.asmdef.meta
new file mode 100644
index 0000000..b31c3fd
--- /dev/null
+++ b/Editor/OpenAI.Editor.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 640ea5081a1d0f6468d38f2d52808a5a
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Resources.meta b/Resources.meta
new file mode 100644
index 0000000..7115bc5
--- /dev/null
+++ b/Resources.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ba44b2fed7b7e2746bd1897059372d5b
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Resources/link.xml b/Resources/link.xml
new file mode 100644
index 0000000..dd12640
--- /dev/null
+++ b/Resources/link.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/Resources/link.xml.meta b/Resources/link.xml.meta
new file mode 100644
index 0000000..3192a2f
--- /dev/null
+++ b/Resources/link.xml.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 26ca615622ff42e58e13b7249aaa56d6
+timeCreated: 1688470534
\ No newline at end of file
diff --git a/Runtime/OpenAIApi.cs b/Runtime/OpenAIApi.cs
index 2e479f0..2c4b0f6 100644
--- a/Runtime/OpenAIApi.cs
+++ b/Runtime/OpenAIApi.cs
@@ -164,7 +164,7 @@ private async Task DispatchRequest(string path, List