#include <sourcemod>
public Plugin my_chatgpt_plugin =
new Plugin("My ChatGPT Plugin for TF2", "1.0", "Your Name");
public Action OnClientSay(int client, const char[] message)
{
if (StrContains(message, "Kog:", true) != -1)
{
// Extract the message text without "Kog:"
char[] msg_text[256];
SubStr(message, 4, -1, msg_text, sizeof(msg_text));
// Use the ChatGPT API to generate a response
char[] response[256];
MyChatGPTApi(msg_text, response);
// Send the response to the chat
PrintToChat(client, "Kog: %s", response);
// Log the response for debugging purposes
LogMessage("Generated response to \"%s\": \"%s\"", msg_text, response);
}
return Plugin_Handled;
}
public void MyChatGPTApi(const char[] input, char[] output)
{
// Define the API endpoint URL
const char[] api_url = "https://api.openai.com/v1/engines/davinci-codex/completions";
// Define the API request headers
const char[] api_headers = "Content-Type: application/json\r\nAuthorization: Bearer YOUR_API_KEY";
// Define the API request data
char[] api_data[512];
format(api_data, "{\"prompt\":\"%s\",\"max_tokens\":50,\"temperature\":0.5}", input);
// Send the API request and get the response
char[] api_response[2048];
HTTPRequest(api_url, api_headers, api_data, api_response, sizeof(api_response), HTTPMETHOD_POST);
// Parse the API response and extract the generated text
char[] response_text[256];
JSON_Object obj = JSON_Parse(api_response);
JSON_Array choices = JSON_GetObjectItem(obj, "choices");
JSON_Object choice = JSON_GetArrayItem(choices, 0);
JSON_Object text = JSON_GetObjectItem(choice, "text");
JSON_GetStringValue(text, response_text, sizeof(response_text));
JSON_Delete(obj);
// Copy the generated text to the output buffer
CopyString(output, response_text, sizeof(output));
}