import { _decorator, Component } from "cc"; export class ChatGPTService { private static _instance: ChatGPTService; public static getInstance() { if (!this._instance) { this._instance = new ChatGPTService(); } return this._instance; } private apiurl: string = "https://cloud.fastgpt.cn/api/v1/chat/completions"; private apikey: string = "fastgpt-gZSIl62Oznoqirj4zrs8tuvYH8Yk9C7GaOiOQtIh6UdLfup7QW2zSWS3"; // 发送POST请求 public async Post(data: GPTResquest): Promise { const self = this; return new Promise(function (resolve, reject) { const xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState == 4 && xhr.status >= 200 && xhr.status < 400) { const response = xhr.responseText; if (response) { const d = JSON.parse(response); resolve(d); } else { resolve(null); } } }; xhr.open("POST", self.apiurl, true); xhr.setRequestHeader("Content-Type", "application/json"); xhr.setRequestHeader("Authorization", "Bearer " + self.apikey); xhr.send(JSON.stringify(data)); }); } } export type GPTResquest = { model: string; //gpt-3.5-turbo messages: { role: string; content: string }[]; temperature: number; }; export type GPTResult = { id: string; object: string; created: number; model: string; usage: { prompt_tokens: number; completion_tokens: number; total_tokens: number; }; choices: { message: { role: string; content: string; }; finish_reason: string; index: number; }[]; };