/* * Author : Amit Dutta * Date : 08 Feb 2026 * Repo : https://github.com/notamitgamer/bsc * License : MIT License (See the LICENSE file for details) */ /* Write a program to analyse a given sentence to detect the mood of the sentence using OpenAI Chat Completion API. */ /* Let Us C, Chap- 24 (Interaction with ChatGPT through C), Qn No.: B(c) */ /* This file is auto-generated by a bot. */ /* This code is not compiled; it is for reference only. */ /* NOTE: These programs require the 'libcurl' library to compile. Command: gcc luc119.c -o output -lcurl */ #include #include #include #include /* Pre-requisites: 1. Install libcurl. 2. Get OpenAI API Key. */ #define API_KEY "YOUR_OPENAI_API_KEY_HERE" int main(void) { CURL *curl; CURLcode res; const char *url = "https://api.openai.com/v1/chat/completions"; /* We construct the JSON payload manually. System prompt instructs the model to detect mood. User prompt is the sentence to analyze. */ const char *data = "{" "\"model\": \"gpt-3.5-turbo\"," "\"messages\": [" " {\"role\": \"system\", \"content\": \"You are a helpful assistant. Analyze the mood of the user input sentence. Return only the mood keywords (e.g., admiration, appreciation, anger, joy).\"}," " {\"role\": \"user\", \"content\": \"I am so impressed by your performance\"}" "]" "}"; struct curl_slist *headers = NULL; char auth_header[100]; sprintf(auth_header, "Authorization: Bearer %s", API_KEY); curl = curl_easy_init(); if(curl) { headers = curl_slist_append(headers, "Content-Type: application/json"); headers = curl_slist_append(headers, auth_header); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); printf("Analyzing sentence: 'I am so impressed by your performance'\n"); printf("Waiting for OpenAI response...\n\n"); // The response will be printed to standard output res = curl_easy_perform(curl); if(res != CURLE_OK) fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); printf("\n\n(Parse the JSON above to extract the 'content' field)\n"); curl_slist_free_all(headers); curl_easy_cleanup(curl); } return 0; }