Cómo hacer que C# y ChatGPT se lleven bien: guía completa de integración
\n\nImagine: su aplicación en C# de repente no solo ejecuta comandos, sino que mantiene un diálogo significativo, escribe código, traduce textos o genera ideas. ¿Suena a ciencia ficción? Pues ya es una realidad gracias a la integración de ChatGPT API en C#. Hoy les mostraré cómo convertir un programa de consola común en un asistente inteligente en 15 minutos. ¡Allá vamos!
\n\nOpenAI proporciona una potente REST API que se lleva muy bien con .NET. No necesita ningún SDK de terceros, solo el HttpClient estándar y un par de bibliotecas para trabajar con JSON. Todo el proceso se resume en cuatro pasos: obtener la clave, enviar la solicitud, analizar la respuesta y disfrutar del resultado.
Qué necesitamos para empezar
\n\nAntes de escribir código, preparemos el entorno. Necesitará:
\n\n- \n
- Visual Studio 2022 o JetBrains Rider (pero también puede usar el .NET SDK normal y un bloc de notas) \n
- .NET 6.0 o superior (yo uso .NET 8, es más rápido) \n
- Clave API de OpenAI: regístrese en platform.openai.com, vaya a la sección API Keys y cree una nueva clave secreta. Atención: la primera vez le dan $5 para pruebas, ¡pero no olvide los límites! \n
- Biblioteca Newtonsoft.Json o System.Text.Json (incluida en .NET, pero prefiero Newtonsoft porque es más clara) \n
Puede instalar Newtonsoft.Json a través de NuGet: Install-Package Newtonsoft.Json o mediante el administrador de paquetes en Visual Studio.
Creando la primera solicitud a ChatGPT en C#
\n\nEmpecemos con algo simple: enviaremos un mensaje al modelo y obtendremos una respuesta. Toda la magia ocurre a través de una solicitud POST al endpoint https://api.openai.com/v1/chat/completions.
Aquí tiene el código mínimo funcional que recomiendo guardar como punto de partida:
\n\nusing System;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading.Tasks;\nusing Newtonsoft.Json;\nusing Newtonsoft.Json.Linq;\n\nclass Program\n{\n private static readonly string apiKey = "SU_CLAVE_AQUI"; // ¡No se la muestre a nadie!\n private static readonly string endpoint = "https://api.openai.com/v1/chat/completions";\n\n static async Task Main(string[] args)\n {\n var client = new HttpClient();\n client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");\n\n var requestBody = new\n {\n model = "gpt-3.5-turbo",\n messages = new[]\n {\n new { role = "user", content = "Cuenta un chiste sobre programadores" }\n },\n temperature = 0.7,\n max_tokens = 150\n };\n\n var json = JsonConvert.SerializeObject(requestBody);\n var content = new StringContent(json, Encoding.UTF8, "application/json");\n\n var response = await client.PostAsync(endpoint, content);\n var responseString = await response.Content.ReadAsStringAsync();\n\n var responseObject = JObject.Parse(responseString);\n var reply = responseObject["choices"][0]["message"]["content"].ToString();\n\n Console.WriteLine("ChatGPT dice:");\n Console.WriteLine(reply);\n }\n}\n\n\nLo ejecuta y la consola muestra algo como: «¿Por qué los programadores confunden Halloween con Navidad? ¡Porque Oct 31 == Dec 25!». ¿Divertido? ¿Funciona? ¡Genial!
\n\nAnalizando el código en detalle
\n\nVeamos qué está pasando aquí. Creamos un HttpClient, añadimos el encabezado de autorización: esta es la práctica estándar para trabajar con la API de OpenAI en C#. El cuerpo de la solicitud es un objeto JSON con parámetros:
- \n
- model: especificamos el modelo.
gpt-3.5-turboes el punto medio dorado en precio/calidad. Para tareas complejas, usegpt-4, pero prepárese para pagar más. \n Blogs
Book Recommendations
Leer también
Monorepositorio con PHP: organización del código y mejores prácticas
Seguridad de aplicaciones JavaScript: top 10 vulnerabilidades para principiantes
Ordenar array por valor de columna en PHP: guía completa
Patrones de diseño en JavaScript: ejemplos para Node.js
PHP en proyectos reales: casos y soluciones arquitectónicas de empresas