It is continuation of previous post “Ask ChatGPT to answer a question using curl command” but request to ChatGPT server is sent by c# code. The authentication secret key in example below has been revoked, so if you want copy-paste the code you need to use your own OpenAI authentication secret key or request new one from there https://platform.openai.com/account/api-keys.
The example is c# console application, the question must be specified as an argument:
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string secretKey = "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";
string openAIUrl = "https://api.openai.com";
string jsonBodyFmt = "\"model\": \"text-davinci-003\",\"prompt\": \"{0}\",\"temperature\": 1,\"max_tokens\": 256";
string question = "";
if (args.Length > 0)
question = args[0];
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri(openAIUrl);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + secretKey);
string jsonBody = "{" + String.Format(jsonBodyFmt, question) + "}";
HttpContent httpContent = new StringContent(jsonBody,
Encoding.UTF8,
"application/json");
var response = client.PostAsync("v1/completions", httpContent).Result;
var result = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(result);
}
}
}
}
Execution:
|
D:\ChatGPTClient\bin\Debug\net45>ChatGPTClient.exe "Please write Hello world program in c" { "id": "cmpl-7RNavCxtEz1XDwWX4tBqz4KVJJbXc", "object": "text_completion", "created": 1686759909, "model": "text-davinci-003", "choices": [ { "text": "\n\n#include<stdio.h>\n\nint main()\n{\n printf(\"Hello World\");\n return 0;\n}", "index": 0, "logprobs": null, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 7, "completion_tokens": 31, "total_tokens": 38 } } |