Quitada las claves API del codigo
This commit is contained in:
parent
d58f5c496a
commit
f20ee01e22
|
@ -9,6 +9,7 @@
|
|||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
appsettings.json
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
|
|
@ -32,5 +32,11 @@
|
|||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="appsettings.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
|
|
10
Program.cs
10
Program.cs
|
@ -13,7 +13,8 @@ namespace GTPCorrgir
|
|||
{
|
||||
OpenAI,
|
||||
Ollama,
|
||||
Groq
|
||||
Groq,
|
||||
Grok // x.ai
|
||||
}
|
||||
public enum modoDeUso
|
||||
{
|
||||
|
@ -29,6 +30,7 @@ namespace GTPCorrgir
|
|||
{
|
||||
{ Opciones.LLM_a_Usar.Ollama, "Ollama" },
|
||||
{ Opciones.LLM_a_Usar.Groq, "Groq" },
|
||||
{ Opciones.LLM_a_Usar.Grok, "Grok" },
|
||||
{ Opciones.LLM_a_Usar.OpenAI, "OpenAI" },
|
||||
|
||||
};
|
||||
|
@ -42,8 +44,8 @@ namespace GTPCorrgir
|
|||
if (_instance == null)
|
||||
{
|
||||
_instance = new Opciones();
|
||||
_instance.LLM = LLM_a_Usar.OpenAI;
|
||||
_instance.modo = modoDeUso.Corregir;
|
||||
_instance.LLM = LLM_a_Usar.Grok;
|
||||
_instance.modo = modoDeUso.Chat;
|
||||
}
|
||||
return _instance;
|
||||
}
|
||||
|
@ -76,6 +78,8 @@ namespace GTPCorrgir
|
|||
Opciones.Instance.LLM = Opciones.LLM_a_Usar.Ollama;
|
||||
else if (arg.Contains("Groq"))
|
||||
Opciones.Instance.LLM = Opciones.LLM_a_Usar.Groq;
|
||||
else if (arg.Contains("Grok"))
|
||||
Opciones.Instance.LLM = Opciones.LLM_a_Usar.Grok;
|
||||
else if (arg.Contains("OpenAI"))
|
||||
Opciones.Instance.LLM = Opciones.LLM_a_Usar.OpenAI;
|
||||
|
||||
|
|
124
gtpask.cs
124
gtpask.cs
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Text;
|
||||
|
@ -14,11 +15,23 @@ using libObsidean;
|
|||
|
||||
namespace GTPCorrgir
|
||||
{
|
||||
public class ApiSettings
|
||||
{
|
||||
public class ApiKeySection
|
||||
{
|
||||
public string OpenAI { get; set; }
|
||||
public string Groq { get; set; }
|
||||
public string Grok { get; set; }
|
||||
}
|
||||
|
||||
public ApiKeySection ApiKeys { get; set; }
|
||||
}
|
||||
|
||||
public class gtpask
|
||||
{
|
||||
private readonly string openAiApiKey = "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";
|
||||
private readonly string groqApiKey = "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";
|
||||
private readonly string openAiApiKey;
|
||||
private readonly string groqApiKey;
|
||||
private readonly string grokApiKey;
|
||||
public Logger Log = new Logger();
|
||||
private Dictionary<string, string> languageMap = new Dictionary<string, string>
|
||||
{
|
||||
|
@ -35,6 +48,37 @@ namespace GTPCorrgir
|
|||
public string TextodeSistema;
|
||||
private const bool Simulacion = false;
|
||||
|
||||
public gtpask()
|
||||
{
|
||||
try
|
||||
{
|
||||
string configPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "appsettings.json");
|
||||
if (File.Exists(configPath))
|
||||
{
|
||||
string jsonContent = File.ReadAllText(configPath);
|
||||
var settings = JsonConvert.DeserializeObject<ApiSettings>(jsonContent);
|
||||
|
||||
openAiApiKey = settings.ApiKeys.OpenAI;
|
||||
groqApiKey = settings.ApiKeys.Groq;
|
||||
grokApiKey = settings.ApiKeys.Grok;
|
||||
|
||||
if (string.IsNullOrEmpty(openAiApiKey) || string.IsNullOrEmpty(groqApiKey) || string.IsNullOrEmpty(grokApiKey))
|
||||
{
|
||||
Log.Log("Warning: One or more API keys are missing in the configuration file.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Log("Error: Configuration file (appsettings.json) not found.");
|
||||
throw new FileNotFoundException("Configuration file (appsettings.json) not found.");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Log($"Error loading configuration: {ex.Message}");
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
private string CrearMensajeDeSistema()
|
||||
{
|
||||
|
@ -132,6 +176,7 @@ namespace GTPCorrgir
|
|||
if (Opciones.Instance.LLM == Opciones.LLM_a_Usar.OpenAI) RespuestaLLM = await CallOpenAiApi(TextoACorregir);
|
||||
if (Opciones.Instance.LLM == Opciones.LLM_a_Usar.Ollama) RespuestaLLM = await CallOllamaApi(TextoACorregir);
|
||||
if (Opciones.Instance.LLM == Opciones.LLM_a_Usar.Groq) RespuestaLLM = await CallGroqAiApi(TextoACorregir);
|
||||
if (Opciones.Instance.LLM == Opciones.LLM_a_Usar.Grok) RespuestaLLM = await CallGrokApi(TextoACorregir);
|
||||
} else
|
||||
{
|
||||
await Task.Delay(1000);
|
||||
|
@ -235,6 +280,74 @@ namespace GTPCorrgir
|
|||
}
|
||||
|
||||
|
||||
private async Task<string> CallGrokApi(string input)
|
||||
{
|
||||
using var httpClient = new HttpClient();
|
||||
string Mensaje_Sistema = CrearMensajeDeSistema();
|
||||
string Mensaje_Usuario = CrearMensajeDeUsuario(input);
|
||||
|
||||
// Configurar headers
|
||||
httpClient.DefaultRequestHeaders.Clear();
|
||||
httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {grokApiKey}");
|
||||
|
||||
// Crear el objeto de solicitud siguiendo exactamente el formato del ejemplo curl
|
||||
var requestData = new
|
||||
{
|
||||
messages = new[]
|
||||
{
|
||||
new { role = "system", content = Mensaje_Sistema },
|
||||
new { role = "user", content = Mensaje_Usuario }
|
||||
},
|
||||
model = "grok-beta",
|
||||
stream = false,
|
||||
temperature = 0
|
||||
};
|
||||
|
||||
var content = new StringContent(
|
||||
JsonConvert.SerializeObject(requestData),
|
||||
Encoding.UTF8,
|
||||
"application/json"
|
||||
);
|
||||
|
||||
try
|
||||
{
|
||||
Log.Log("Ask Grok: " + JsonConvert.SerializeObject(requestData));
|
||||
|
||||
// URL corregida para coincidir con el ejemplo
|
||||
var response = await httpClient.PostAsync("https://api.x.ai/v1/chat/completions", content);
|
||||
response.EnsureSuccessStatusCode();
|
||||
|
||||
var jsonResponse = await response.Content.ReadAsStringAsync();
|
||||
Log.Log("Grok Response: " + jsonResponse); // Logging la respuesta para debug
|
||||
|
||||
dynamic data = JsonConvert.DeserializeObject(jsonResponse);
|
||||
return data.choices[0].message.content;
|
||||
}
|
||||
catch (HttpRequestException e)
|
||||
{
|
||||
Log.Log($"Error en la solicitud HTTP: {e.Message}");
|
||||
Console.WriteLine($"Error making HTTP request: {e.Message}");
|
||||
return null;
|
||||
}
|
||||
catch (JsonException e)
|
||||
{
|
||||
Log.Log($"Error al procesar JSON: {e.Message}");
|
||||
Console.WriteLine($"Error processing JSON response: {e.Message}");
|
||||
return null;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Log($"Error general: {e.Message}");
|
||||
Console.WriteLine($"An error occurred: {e.Message}");
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
httpClient?.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private async Task<string> CallOllamaApi(string input)
|
||||
{
|
||||
var httpClient = new HttpClient();
|
||||
|
@ -245,7 +358,7 @@ namespace GTPCorrgir
|
|||
|
||||
var requestData = new
|
||||
{
|
||||
model = "phi3", //"llama3",
|
||||
model = "llama3.2:latest", // "phi3", //"llama3",
|
||||
messages = new[]
|
||||
{
|
||||
new { role = "system", content = Mensaje_Sistema },
|
||||
|
@ -294,7 +407,7 @@ namespace GTPCorrgir
|
|||
|
||||
var requestData = new
|
||||
{
|
||||
model = "gpt-4",
|
||||
model = "gpt-4o-mini", //"gpt -4",
|
||||
messages = new[]
|
||||
{
|
||||
new { role = "system", content = Mensaje_Sistema },
|
||||
|
@ -326,6 +439,7 @@ namespace GTPCorrgir
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
private async Task<string> CallGroqAiApi(string input)
|
||||
{
|
||||
var httpClient = new HttpClient();
|
||||
|
@ -336,7 +450,7 @@ namespace GTPCorrgir
|
|||
|
||||
var requestData = new
|
||||
{
|
||||
model = "llama3-70b-8192",
|
||||
model = "llama-3.1-70b-versatile", // "llama3-70b-8192",
|
||||
messages = new[]
|
||||
{
|
||||
new { role = "system", content = Mensaje_Sistema },
|
||||
|
|
Loading…
Reference in New Issue