using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; using UnityEngine.Networking; public class APICaller : MonoBehaviour { // Start is called before the first frame update void Start() { } public MessageSystem messageSystem; public string apiUrl; public string apiKey; public string ChatID; // Update is called once per frame void Update() { } public void StartQuestionEvent() { StartCoroutine(SendChatRequest()); } #region Classes [System.Serializable] public class Message { public string role; public string content; } [System.Serializable] public class ChatData { public bool stream; public int temperature; public string chatId; public List messages; } public class BotResponse { public string text; } #endregion private IEnumerator SendChatRequest() { messageSystem.AskQuestiontoBot(); messageSystem.bot_istyping = true; Message userMessage = new Message { role = "user", content = messageSystem.QuestionPanel.text// Text objesinin içeriğini burada kullanabilirsiniz }; List messages = new List { userMessage }; ChatData chatData = new ChatData { stream = false, temperature = 0, chatId = ChatID, messages = messages }; // Oluşturulacak JSON verisini hazırlayın string json = JsonUtility.ToJson(chatData); // UnityWebRequest ile HTTP POST isteği oluşturun UnityWebRequest request = new UnityWebRequest(apiUrl, "POST"); byte[] bodyRaw = System.Text.Encoding.UTF8.GetBytes(json); request.uploadHandler = new UploadHandlerRaw(bodyRaw); request.downloadHandler = new DownloadHandlerBuffer(); // Authorization başlığını ekleyin request.SetRequestHeader("Authorization", "Bearer " + apiKey); // Diğer başlıkları eklemek isterseniz aşağıdaki gibi ekleyebilirsiniz request.SetRequestHeader("accept", "application/json"); request.SetRequestHeader("Content-Type", "application/json"); // İsteği gönderin ve yanıtı bekleyin yield return request.SendWebRequest(); if (request.result == UnityWebRequest.Result.Success) { Debug.Log("HTTP isteği başarılı: " + request.downloadHandler.text); BotResponse result = JsonUtility.FromJson(request.downloadHandler.text); messageSystem.GetAnswerFromBot(result.text); messageSystem.bot_istyping = false; messageSystem.QuestionPanel.text = ""; } else { Debug.LogError("HTTP isteği başarısız: " + request.error); Debug.Log(json); messageSystem.GetAnswerFromBot("Hata Kodu : " + request.responseCode.ToString()); messageSystem.bot_istyping = false; messageSystem.QuestionPanel.text = ""; } } }