chat.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. async function initializeService() {
  2. try {
  3. const response = await fetch("/api/chat/init-chat");
  4. if (!response.ok) {
  5. const errorData = await response.json().catch(() => ({ message: "Error desconocido al inicializar." }));
  6. throw new Error(errorData.message || `Error del servidor: ${response.status}`);
  7. }
  8. const data = await response.json();
  9. const token = data.chatToken;
  10. if (!token) {
  11. throw new Error("No se pudo obtener el token de chat.");
  12. }
  13. return [true, token];
  14. } catch (error) {
  15. console.error("Error al inicializar el chat:", error);
  16. }
  17. }
  18. async function sendMessage(message, messageList, userName) {
  19. if (!chatToken) {
  20. return "not_init";
  21. return;
  22. }
  23. messageList.push({ role: "user", content: message });
  24. const cuerpo = { messages: messageList, user: userName }
  25. const response = await fetch("/api/chat/completions", {
  26. method: "POST",
  27. headers: {
  28. "Content-Type": "application/json",
  29. "X-App-Token": chatToken
  30. },
  31. body: JSON.stringify(cuerpo)
  32. });
  33. if (!response.ok) {
  34. const errorData = await response.json().catch(() => ({ message: "Respuesta no válida del servidor." }));
  35. throw new Error(errorData.message || `Error del servidor: ${response.status}`);
  36. }
  37. const data = await response.json();
  38. const assistantResponse = data.response;
  39. if (assistantResponse) {
  40. messageList.push({ role: "assistant", content: assistantResponse });
  41. return { messageList, assistantResponse };
  42. } else {
  43. throw new Error("Respuesta vacía del asistente.");
  44. }
  45. }
  46. export { initializeService , sendMessage };