85 lines
1.5 KiB
Markdown
85 lines
1.5 KiB
Markdown
# Internal Chat UI (Angular)
|
|
|
|
Projeto Angular com interface inspirada no ChatGPT, pensado para **consumo interno**.
|
|
|
|
## O que inclui
|
|
|
|
- Layout moderno com sidebar e zona principal de conversa
|
|
- Campo de input com envio por botão ou Enter
|
|
- Estado de loading com animação
|
|
- Serviço Angular para comunicar com backend privado
|
|
- Configuração centralizada no ficheiro `src/environments/environment.ts`
|
|
|
|
## Instalação
|
|
|
|
```bash
|
|
npm install
|
|
npm start
|
|
```
|
|
|
|
A aplicação ficará disponível por defeito em `http://localhost:4200`.
|
|
|
|
## Configurar backend
|
|
|
|
Edita este ficheiro:
|
|
|
|
```ts
|
|
src/environments/environment.ts
|
|
```
|
|
|
|
Exemplo:
|
|
|
|
```ts
|
|
export const environment = {
|
|
production: false,
|
|
appName: 'MetaCase Internal Assistant',
|
|
apiBaseUrl: 'http://127.0.0.1:8000',
|
|
chatEndpoint: '/api/perguntar',
|
|
requestTimeoutMs: 45000,
|
|
internalBadge: 'Uso interno'
|
|
};
|
|
```
|
|
|
|
## Payload enviado ao backend
|
|
|
|
O `ChatService` envia este formato:
|
|
|
|
```json
|
|
{
|
|
"pergunta": "Texto introduzido pelo utilizador",
|
|
"history": [
|
|
{
|
|
"role": "user",
|
|
"content": "...",
|
|
"createdAt": "2026-03-20T00:00:00.000Z"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## Respostas aceites
|
|
|
|
A UI tenta ler um destes campos da resposta:
|
|
|
|
- `resposta`
|
|
- `answer`
|
|
- `message`
|
|
|
|
## Estrutura
|
|
|
|
```text
|
|
src/
|
|
app/
|
|
components/chat-layout/
|
|
services/chat.service.ts
|
|
environments/environment.ts
|
|
```
|
|
|
|
## Próximos melhoramentos
|
|
|
|
- autenticação interna
|
|
- histórico real de conversas
|
|
- markdown nas respostas
|
|
- upload de ficheiros
|
|
- integração com OpenWebUI / FastAPI / proxy interno
|