Skip to content

Commit 2831047

Browse files
committed
Support Modify API URL
1 parent 6a78267 commit 2831047

File tree

5 files changed

+38
-10
lines changed

5 files changed

+38
-10
lines changed

.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,6 @@ publish/
182182
# in these scripts will be unencrypted
183183
PublishScripts/
184184

185-
# NuGet Packages
186-
*.nupkg
187185
# NuGet Symbol Packages
188186
*.snupkg
189187
# The packages folder can be ignored because of Package Restore

ChatGPT.API.Framework/ChatGPTClient.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,13 @@ namespace ChatGPT.API.Framework
1414
/// </summary>
1515
public class ChatGPTClient
1616
{
17-
public ChatGPTClient(string aPIKey)
17+
/// <summary>
18+
/// Create a new Client
19+
/// </summary>
20+
public ChatGPTClient(string apikey, string apiurl = "https://api.openai.com/v1/chat/completions")
1821
{
19-
APIKey = aPIKey;
22+
APIKey = apikey;
23+
APIUrl = apiurl;
2024
}
2125

2226
public ChatGPTClient()
@@ -29,6 +33,10 @@ public ChatGPTClient()
2933
/// </summary>
3034
public string APIKey { get; set; }
3135
/// <summary>
36+
/// ChatGPT API URL
37+
/// </summary>
38+
public string APIUrl { get; set; }
39+
/// <summary>
3240
/// Total Token Usage
3341
/// </summary>
3442
public long TotalTokensUsage { get; set; }
@@ -68,11 +76,10 @@ public Response Ask(string id, string usermessage)
6876
}
6977
cp.messages.Add(new Message() { role = Message.RoleType.user, content = usermessage });
7078

71-
var request = (HttpWebRequest)WebRequest.Create("https://api.openai.com/v1/chat/completions");
79+
var request = (HttpWebRequest)WebRequest.Create(APIUrl);
7280
request.Method = "POST";
7381
request.ContentType = "application/json";//ContentType
7482
request.Headers.Add("Authorization", "Bearer " + APIKey);
75-
var str = JsonConvert.SerializeObject(cp);
7683
byte[] byteData = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(cp));
7784
int length = byteData.Length;
7885
request.ContentLength = length;

ChatGPT.API.Test/Program.cs

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using ChatGPT.API.Framework;
22
using System;
33
using System.Collections.Generic;
4+
using System.IO;
45
using System.Linq;
56
using System.Text;
67
using System.Threading.Tasks;
@@ -12,14 +13,36 @@ internal class Program
1213
static void Main(string[] args)
1314
{
1415
Console.WriteLine("ChatGPT API Test");
16+
ChatGPTClient cgc;
1517
Console.WriteLine("APIKey: ");
16-
ChatGPTClient cgc = new ChatGPTClient(Console.ReadLine());
17-
Console.WriteLine("System Message: ");
18-
cgc.CreateCompletions("def", Console.ReadLine());
18+
if (File.Exists(Environment.CurrentDirectory + @"\.save.tmp"))
19+
{
20+
cgc = ChatGPTClient.Load(File.ReadAllText(Environment.CurrentDirectory + @"\.save.tmp"));
21+
Console.WriteLine(cgc.APIKey);
22+
Console.WriteLine("System Message: ");
23+
Console.WriteLine(cgc.Completions["def"].messages[0].content);
24+
for (int i = 1; i < cgc.Completions["def"].messages.Count; i++)
25+
{
26+
Console.WriteLine(cgc.Completions["def"].messages[i].role.ToString() + " Message: ");
27+
Console.WriteLine(cgc.Completions["def"].messages[i].content);
28+
}
29+
}
30+
else
31+
{
32+
cgc = new ChatGPTClient(Console.ReadLine());
33+
Console.WriteLine("System Message: ");
34+
cgc.CreateCompletions("def", Console.ReadLine());
35+
}
1936
while (true)
2037
{
2138
Console.WriteLine("User Message: ");
22-
Console.WriteLine("System Message: \n" + cgc.Ask("def", Console.ReadLine()).GetMessageContent());
39+
var rl = Console.ReadLine();
40+
if (rl == "exit")
41+
{
42+
File.WriteAllText(Environment.CurrentDirectory + @"\.save.tmp", cgc.Save());
43+
return;
44+
}
45+
Console.WriteLine("System Message: \n" + cgc.Ask("def", rl).GetMessageContent());
2346
}
2447
}
2548
}
28.9 KB
Binary file not shown.
29.2 KB
Binary file not shown.

0 commit comments

Comments
 (0)