CodAI es una especie de pseudo clon de CodePen con funcionalidades de IA como poder entrar audio, texto, etc.
- Terminar de implementar el servicio de Whisper en local.
- Que los 3 paneles de HTML, CSS, JavaScript sirvan también como "fuentes" del chat.
Necesitarás docker y docker-compose.
docker-compose up
Todo el proyecto está dividido en varios servicios:
nginx
: Como gateway.ui
: Interfaz de usuario, implementada utilizando Nuxt.js, pinia y CodeMirror.api
: API REST que sirve de intermediario entre las APIs de OpenAI y la interfaz de usuario. Aquí se almacena toda la información de los CodAI pens usando SQLite 3.redis
: Para la comunicación entre servicios.
A veces al arrancar nitro, el socket del worker anterior no se eliminó y da un error de este tipo:
ui_1 | [nitro] [dev] [uncaughtException] Error: listen EADDRINUSE: address already in use /tmp/nitro/worker-35-1.sock
ui_1 | at Server.setupListenHandle [as _listen2] (node:net:1723:21)
ui_1 | at listenInCluster (node:net:1788:12)
ui_1 | at Server.listen (node:net:1887:5)
ui_1 | at file:https:///home/node/services/ui/.nuxt/dev/index.mjs:584:8
ui_1 | at ModuleJob.run (node:internal/modules/esm/module_job:194:25) {
ui_1 | code: 'EADDRINUSE',
ui_1 | errno: -98,
ui_1 | syscall: 'listen',
ui_1 | address: '/tmp/nitro/worker-35-1.sock',
ui_1 | port: -1
ui_1 | }
ui_1 |
ui_1 | ERROR [worker reload] [worker] exited
ui_1 |
ui_1 | at Worker.<anonymous> (/home/node/node_modules/.pnpm/[email protected]/node_modules/nitropack/dist/shared/nitro.96034a6e.mjs:3939:9)
ui_1 | at Object.onceWrapper (node:events:628:26)
ui_1 | at Worker.emit (node:events:513:28)
ui_1 | at Worker.emit (node:domain:489:12)
ui_1 | at [kOnExit] (node:internal/worker:279:10)
ui_1 | at Worker.<computed>.onexit (node:internal/worker:199:20)
Entrar dentro del contenedor y borrar manualmente el socket.
docker exec -it codai_ui-1 bash
Una vez dentro del contenedor:
rm /tmp/nitro/*
Rearrancamos la interfaz:
docker-compose restart ui
Made with ❤️ by AzazelN28