Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/laisfrigerio/smart-prompter-gemini

Gerenciador de templates de prompt com integração à API Gemini do Google
https://github.com/laisfrigerio/smart-prompter-gemini

alura cicd express gemini gemini-api generative-ai github-actions google google-gemini jest nodejs supertest swagger typescript

Last synced: about 2 months ago
JSON representation

Gerenciador de templates de prompt com integração à API Gemini do Google

Awesome Lists containing this project

README

        

# smart-prompter-gemini

API para gerenciamento de templates de prompts com integração à API gemini do Google!

## Desafio

- [x] Dia 01: Setup básico da aplicação + integração com Gemini
- [x] Dia 02: Salvar prompts e setup do ambiente de testes
- [x] Dia 03: Criando CRUD de categorias e testes de unidade com mocks
- [x] Dia 04: Escrevendo testes de integração
- [x] Dia 05: Categorizando os prompts
- [x] Dia 06: Adicionando documentação swagger
- [ ] Dia 07: Integração contínua com Github Actions

## Rotas - Templates

### Criar um template

- POST:

```sh
curl -H 'Content-Type: application/json' http://localhost:3000/templates -d '{"title": "Capital do estado do Paraná", "content": "Qual a capital do estado do Paraná situada na região sul do Brasil?"}'
```

- Exemplo de resposta:

```json
{
"id": "297c2b12-c47f-43ce-8fad-0864d36fe8f8",
"title": "Capital do estado do Paraná",
"content": "Qual a capital do estado do Paraná situada na região sul do Brasil?",,
"categories": []
}
```

### Lista de templates

- GET:

```sh
curl 'Content-Type: application/json' http://localhost:3000/templates
```

- Exemplo de resposta:

```json
[
{
"id": "297c2b12-c47f-43ce-8fad-0864d36fe8f8",
"title": "Capital do estado do Paraná",
"content": "Qual a capital do estado do Paraná situada na região sul do Brasil?",,
"categories": []
}
]
```

### Encontrar um template por ID

- GET:

```sh
curl 'Content-Type: application/json' http://localhost:3000/templates/7befb756-9dad-48c0-a5a7-3a0c3d20a3fc
```

- Exemplo de resposta:

```json
{
"id": "297c2b12-c47f-43ce-8fad-0864d36fe8f8",
"title": "Capital do estado do Paraná",
"content": "Qual a capital do estado do Paraná situada na região sul do Brasil?",,
"categories": []
}
```

### Editar um template por ID

- PUT:

```sh
curl -H 'Content-Type: application/json' -X PUT http://localhost:3000/templates/7befb756-9dad-48c0-a5a7-3a0c3d20a3fc -d '{"title": "Capital do estado do Paraná", "content": "Qual a capital do estado do Paraná situada na região sul do Brasil, por favor?"}'
```

- Exemplo de resposta:

```json
{
"id": "297c2b12-c47f-43ce-8fad-0864d36fe8f8",
"title": "Capital do estado do Paraná",
"content": "Qual a capital do estado do Paraná situada na região sul do Brasil?",,
"categories": []
}
```

### Remover um template por ID

- DELETE:

```sh
curl -H 'Content-Type: application/json' -X DELETE http://localhost:3000/templates/7befb756-9dad-48c0-a5a7-3a0c3d20a3fc
```

## Rotas - Categories

### Criar uma categoria

- POST:

```sh
curl -H 'Content-Type: application/json' http://localhost:3000/categories -d '{"name": "Java", "description": "Linguagem de Programação"}'
```

- Exemplo de resposta:

```json
{
"id": "297c2b12-c47f-43ce-8fad-0864d36fe8f8",
"name": "Java",
"description": "Linguagem de Programação",
"templates": []
}
```

### Lista de categorias

- GET:

```sh
curl 'Content-Type: application/json' http://localhost:3000/categories
```

- Exemplo de resposta:

```json
[
{
"id": "297c2b12-c47f-43ce-8fad-0864d36fe8f8",
"name": "Java",
"description": "Linguagem de Programação",
"templates": []
}
]
```

### Encontrar uma categoria por ID

- GET:

```sh
curl 'Content-Type: application/json' http://localhost:3000/categories/7befb756-9dad-48c0-a5a7-3a0c3d20a3fc
```

- Exemplo de resposta:

```json
{
"id": "297c2b12-c47f-43ce-8fad-0864d36fe8f8",
"name": "Java",
"description": "Linguagem de Programação",
"templates": []
}
```

### Editar uma categoria por ID

- PUT:

```sh
curl -H 'Content-Type: application/json' -X PUT http://localhost:3000/categories/7befb756-9dad-48c0-a5a7-3a0c3d20a3fc -d '{"title": "Java"}'
```

- Exemplo de resposta:

```json
{
"id": "297c2b12-c47f-43ce-8fad-0864d36fe8f8",
"name": "Java",
"description": "",
"templates": []
}
```

### Remover um template por ID

- DELETE:

```sh
curl -H 'Content-Type: application/json' -X DELETE http://localhost:3000/categories/7befb756-9dad-48c0-a5a7-3a0c3d20a3fc
```

## Rotas - Categoriação de templates

### Attach

- POST:

```sh
curl -H 'Content-Type: application/json' -X POST http://localhost:3000/templates/4860843a-9d01-4fb8-8985-c1ce02602c27/categories/28156d6e-840d-4fed-b1ed-af0b5a3dfb7a
```

- Exemplo de resposta:

```json
{
"id": "4860843a-9d01-4fb8-8985-c1ce02602c27",
"title": "Capital do estado do Paraná",
"content": "Qual a capital do estado do Paraná situada na região sul do Brasil?",
"categories": [
{
"id": "28156d6e-840d-4fed-b1ed-af0b5a3dfb7a",
"name": "Java",
"description": "Linguagem de Programação"
}
]
}
```

### Detach

- DELETE:

```sh
curl -H 'Content-Type: application/json' -X DELETE http://localhost:3000/templates/4860843a-9d01-4fb8-8985-c1ce02602c27/categories/28156d6e-840d-4fed-b1ed-af0b5a3dfb7a
```

- Exemplo de resposta:

```json
{
"id": "297c2b12-c47f-43ce-8fad-0864d36fe8f8",
"title": "Prompt title",
"content": "Prompt content",
"categories": []
}
```