Skip to content

Commit

Permalink
Support Modify API URL
Browse files Browse the repository at this point in the history
  • Loading branch information
LorisYounger committed Mar 11, 2023
1 parent 6a78267 commit 2831047
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 10 deletions.
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -182,8 +182,6 @@ publish/
# in these scripts will be unencrypted
PublishScripts/

# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
Expand Down
15 changes: 11 additions & 4 deletions ChatGPT.API.Framework/ChatGPTClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,13 @@ namespace ChatGPT.API.Framework
/// </summary>
public class ChatGPTClient
{
public ChatGPTClient(string aPIKey)
/// <summary>
/// Create a new Client
/// </summary>
public ChatGPTClient(string apikey, string apiurl = "https://api.openai.com/v1/chat/completions")
{
APIKey = aPIKey;
APIKey = apikey;
APIUrl = apiurl;
}

public ChatGPTClient()
Expand All @@ -29,6 +33,10 @@ public ChatGPTClient()
/// </summary>
public string APIKey { get; set; }
/// <summary>
/// ChatGPT API URL
/// </summary>
public string APIUrl { get; set; }
/// <summary>
/// Total Token Usage
/// </summary>
public long TotalTokensUsage { get; set; }
Expand Down Expand Up @@ -68,11 +76,10 @@ public Response Ask(string id, string usermessage)
}
cp.messages.Add(new Message() { role = Message.RoleType.user, content = usermessage });

var request = (HttpWebRequest)WebRequest.Create("https://api.openai.com/v1/chat/completions");
var request = (HttpWebRequest)WebRequest.Create(APIUrl);
request.Method = "POST";
request.ContentType = "application/json";//ContentType
request.Headers.Add("Authorization", "Bearer " + APIKey);
var str = JsonConvert.SerializeObject(cp);
byte[] byteData = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(cp));
int length = byteData.Length;
request.ContentLength = length;
Expand Down
31 changes: 27 additions & 4 deletions ChatGPT.API.Test/Program.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using ChatGPT.API.Framework;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
Expand All @@ -12,14 +13,36 @@ internal class Program
static void Main(string[] args)
{
Console.WriteLine("ChatGPT API Test");
ChatGPTClient cgc;
Console.WriteLine("APIKey: ");
ChatGPTClient cgc = new ChatGPTClient(Console.ReadLine());
Console.WriteLine("System Message: ");
cgc.CreateCompletions("def", Console.ReadLine());
if (File.Exists(Environment.CurrentDirectory + @"\.save.tmp"))
{
cgc = ChatGPTClient.Load(File.ReadAllText(Environment.CurrentDirectory + @"\.save.tmp"));
Console.WriteLine(cgc.APIKey);
Console.WriteLine("System Message: ");
Console.WriteLine(cgc.Completions["def"].messages[0].content);
for (int i = 1; i < cgc.Completions["def"].messages.Count; i++)
{
Console.WriteLine(cgc.Completions["def"].messages[i].role.ToString() + " Message: ");
Console.WriteLine(cgc.Completions["def"].messages[i].content);
}
}
else
{
cgc = new ChatGPTClient(Console.ReadLine());
Console.WriteLine("System Message: ");
cgc.CreateCompletions("def", Console.ReadLine());
}
while (true)
{
Console.WriteLine("User Message: ");
Console.WriteLine("System Message: \n" + cgc.Ask("def", Console.ReadLine()).GetMessageContent());
var rl = Console.ReadLine();
if (rl == "exit")
{
File.WriteAllText(Environment.CurrentDirectory + @"\.save.tmp", cgc.Save());
return;
}
Console.WriteLine("System Message: \n" + cgc.Ask("def", rl).GetMessageContent());
}
}
}
Expand Down
Binary file added nuget/ChatGPT.API.Framework.1.0.0.nupkg
Binary file not shown.
Binary file added nuget/ChatGPT.API.Framework.1.0.1.nupkg
Binary file not shown.

0 comments on commit 2831047

Please sign in to comment.