onlyou13

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

问1:

如何用delphi调用ChatGPT接口

答1:

uses
  IdHTTP, System.JSON;

function GetChatGPTResponse(const Query: string): string;
var
  IdHTTP: TIdHTTP;
begin
  IdHTTP := TIdHTTP.Create(nil);
  try
    Result := IdHTTP.Get('https://api.openai.com/v1/engines/davinci-codex/completions?prompt=' + Query);
  finally
    IdHTTP.Free;
  end;
end;

function GetChatGPTText(const Query: string): string;
var
  JSONValue: TJSONValue;
begin
  Result := '';
  try
    JSONValue := TJSONObject.ParseJSONValue(GetChatGPTResponse(Query));
    if JSONValue is TJSONObject then
      Result := TJSONObject(JSONValue).GetValue('choices').Items[0].GetValue('text').Value;
  except
    // 异常处理
  end;
end;

使用 GetChatGPTText 函数传入一个问题字符串,将返回 ChatGPT 的响应,您可以将其输出到控制台或将其显示在 GUI 窗口中。

请注意,此代码仅是示例,您需要根据您的需要进行修改,以处理不同类型的响应,包括错误处理和身份验证。

 

问2:

如何用C#调用ChatGPT              (使用到了.net core的类库)

答2:

using System;
using System.Net.Http;
using System.Text.Json;

class ChatGPT
{
    static async void GetChatGPTResponse(string query)
    {
        using (var httpClient = new HttpClient())
        {
            var url = "https://api.openai.com/v1/engines/davinci-codex/completions?prompt=" + query;
            using (var response = await httpClient.GetAsync(url))
            {
                string responseContent = await response.Content.ReadAsStringAsync();

                // 解析响应,获取返回的文本
                var document = JsonDocument.Parse(responseContent);
                var text = document.RootElement.GetProperty("choices")[0].GetProperty("text").GetString();

                Console.WriteLine(text);
            }
        }
    }

    static void Main(string[] args)
    {
        GetChatGPTResponse("Hello, ChatGPT!");
    }
}

使用 GetChatGPTResponse 方法传入一个问题字符串,将返回 ChatGPT 的响应,您可以将其输出到控制台或将其显示在 GUI 窗口中。

请注意,此代码仅是示例,您需要根据您的需要进行修改,以处理不同类型的响应,包括错误处理和身份验证。

 

 

 问3:
如何用C# .net framework 调用ChatGPT

答3:

要使用 .NET Framework 调用 ChatGPT 接口,您可以使用 System.Net.WebClient 类或 System.Net.HttpWebRequest 

类将数据发送到 ChatGPT 的 API 终点,然后解析响应。以下是一个使用 System.Net.WebClient 类的简单示例:
using System;
using System.Net;
using System.IO;
using Newtonsoft.Json.Linq;

class ChatGPT
{
    static void Main(string[] args)
    {
        string query = "Hello, ChatGPT!";
        string url = "https://api.openai.com/v1/engines/davinci-codex/completions?prompt=" + query;

        using (var client = new WebClient())
        {
            client.Headers.Add("Content-Type:application/json");
            client.Headers.Add("Authorization: Bearer YOUR_API_KEY");

            string response = client.DownloadString(url);

            JObject jsonObject = JObject.Parse(response);
            string text = jsonObject["choices"][0]["text"].ToString();

            Console.WriteLine(text);
        }
    }
}
在此示例中,我们首先定义了一个查询字符串和 API 终点 URL。然后,我们使用 WebClient 类来创建一个 HTTP 请求,

并设置请求头以包括身份验证信息。发送请求后,我们从响应字符串中解析出所需的文本,然后将其输出到控制台。

请注意,您需要将 YOUR_API_KEY 替换为您的 OpenAI API 密钥。 您也可以使用 System.Net.HttpWebRequest 类发送 HTTP 请求,以下是一个简单的示例:
using System;
using System.IO;
using System.Net;
using Newtonsoft.Json.Linq;

class ChatGPT
{
    static void Main(string[] args)
    {
        string query = "Hello, ChatGPT!";
        string url = "https://api.openai.com/v1/engines/davinci-codex/completions?prompt=" + query;

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Headers["Authorization"] = "Bearer YOUR_API_KEY";

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();

        using (StreamReader reader = new StreamReader(response.GetResponseStream()))
        {
            string json = reader.ReadToEnd();

            JObject jsonObject = JObject.Parse(json);
            string text = jsonObject["choices"][0]["text"].ToString();

            Console.WriteLine(text);
        }
    }
}

 

 
 
posted on 2023-02-16 21:42  onlyou13  阅读(1675)  评论(0编辑  收藏  举报