docs-cli 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,223 @@
1
+ Metadata-Version: 2.4
2
+ Name: docs-cli
3
+ Version: 0.1.0
4
+ Summary: Um toolkit para processamento e avaliação de documentação.
5
+ Author-email: Paulo Guilherme Pilott <seuemail@example.com>
6
+ License: MIT License
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: License :: OSI Approved :: MIT License
9
+ Classifier: Operating System :: OS Independent
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Topic :: Documentation
13
+ Classifier: Topic :: Utilities
14
+ Classifier: Environment :: Console
15
+ Requires-Python: >=3.8
16
+ Description-Content-Type: text/markdown
17
+ Requires-Dist: google-generativeai
18
+ Requires-Dist: python-dotenv
19
+ Requires-Dist: numpy
20
+ Requires-Dist: pandas
21
+
22
+ # Toolkit de Análise e Cobertura de Documentação Técnica (`docs-cli`)
23
+
24
+ Este toolkit fornece um conjunto de scripts Python para processar documentação técnica em formato Markdown, gerar embeddings semânticos, avaliar a cobertura da documentação em relação a um conjunto de perguntas e respostas, e gerar relatórios detalhados. O script principal `docs_tc.py` orquestra a execução dos scripts individuais.
25
+
26
+ ## Pré-requisitos
27
+
28
+ 1. **Python 3.7+**: certifique-se de que o Python está instalado e configurado no seu PATH.
29
+ 2. **Dependências Python**: instale as bibliotecas necessárias. É recomendado criar um ambiente virtual:
30
+ ```bash
31
+ python -m venv venv
32
+ source venv/bin/activate # Linux/macOS
33
+ # venv\Scripts\activate # Windows
34
+ pip install google-generativeai python-dotenv numpy pandas
35
+ ```
36
+ Você também pode criar um arquivo `requirements.txt` com o conteúdo acima e rodar `pip install -r requirements.txt`.
37
+ 3. **Chave da API Google Gemini**:
38
+ * Crie um arquivo chamado `.env` na raiz do projeto.
39
+ * Dentro do `.env`, adicione sua chave da API:
40
+ ```
41
+ GOOGLE_API_KEY="SUA_CHAVE_API_AQUI"
42
+ ```
43
+ * **IMPORTANTE**: o arquivo `.env` contém informações sensíveis e **não deve ser versionado** no Git. Adicione `.env` ao seu arquivo `.gitignore`.
44
+
45
+ ## Estrutura de Arquivos Esperada (Antes da Execução)
46
+
47
+ ```txt
48
+ /seu-projeto-raiz/
49
+ |-- docs_tc.py # Script orquestrador principal
50
+ |-- merge_markdown.py # Script para consolidar .md
51
+ |-- extract_data_from_markdown.py # Script para extrair dados do .md consolidado
52
+ |-- generate_embeddings.py # Script para gerar embeddings
53
+ |-- limpa_csv.py # Script para limpar o CSV de Q&A
54
+ |-- evaluate_coverage.py # Script para avaliar a cobertura
55
+ |-- generate_report.py # Script para gerar relatório .md
56
+ |-- generate_report_html.py # Script para gerar relatório .html
57
+ ```
58
+ ## Arquivos Gerados (e não versionados por padrão):
59
+
60
+ Os seguintes arquivos são gerados durante a execução dos scripts. É recomendado adicioná-los ao seu `.gitignore` se você não pretende versioná-los:
61
+
62
+ - `corpus_consolidated.md`
63
+ - `raw_docs.json`
64
+ - `embedings.json` (ou o nome que você usar para o arquivo de embeddings)
65
+ - `gartner_filtrado_processed.csv` (ou o nome do seu CSV de Q&A limpo)
66
+ - `evaluation_results.json`
67
+ - `coverage_report.md`
68
+ - `coverage_report.html`
69
+
70
+ ### Configuração do `.gitignore`:
71
+
72
+ #### Arquivos de Ambiente
73
+ ```gitignore
74
+ .env
75
+ chaves/.env
76
+ ```
77
+ #### Arquivos de Dados Gerados
78
+ ```gitignore
79
+ # Ignorar arquivos gerados automaticamente
80
+ *.json
81
+ *.csv
82
+ *.md
83
+ *.html
84
+ ```
85
+
86
+ #### Exceto os arquivos que SÃO parte do toolkit/interface
87
+
88
+ ```bash
89
+ # Mantenha estes arquivos versionados (exceções à regra global)
90
+ !docs_tc.py
91
+ !merge_markdown.py
92
+ !extract_data_from_markdown.py
93
+ !generate_embedings.py
94
+ !limpa_csv.py
95
+ !evaluate_coverage.py
96
+ !generate_report.py
97
+ !generate_report_html.py
98
+ !assistente/index.html
99
+ !assistente/about.html
100
+ !assistente/mudanca.html
101
+ !README.md
102
+ !requirements.txt
103
+ ```
104
+
105
+ #### Arquivos de Cache Python
106
+ ```gitignore
107
+ pycache/
108
+ *.py[cod]
109
+ *$py.class
110
+ ```
111
+ #### Ambiente Virtual
112
+ ```gitignore
113
+ venv/
114
+ ```
115
+
116
+ - Ajuste o `.gitignore` acima para manter os arquivos `.md` e `.html` que são parte da sua documentação ou da ferramenta em si (como este `README.md` ou o `index.html` da interface).*
117
+ - No exemplo acima, `*.json`, `*.csv`, `*.md`, `*.html` são ignorados globalmente, e depois exceções são adicionadas. Seus arquivos de documentação originais em `DocumentosMD/` e o CSV bruto em `DadosQA/` **não serão ignorados** por esta configuração, o que é o desejado.*
118
+
119
+ ## Utilização do `docs-cli`
120
+
121
+ O `docs_tc.py` é o ponto de entrada principal para utilizar o toolkit. Abra um terminal na raiz do projeto.
122
+
123
+ ### 1. Ajuda Geral e de Comandos:
124
+
125
+ ```bash
126
+ docs-cli -h
127
+ docs-cli <comando> -h # Ex: docs-cli merge -h
128
+ ```
129
+ ### 2. Execução de Comandos Individuais:
130
+
131
+ Cada script pode ser chamado por um subcomando. Os nomes de arquivo padrão são usados se não especificados.
132
+
133
+ #### Consolidar Documentos (`merge`):
134
+
135
+ ```bash
136
+ docs-cli merge ./docs/ --output_file corpus_consolidated.md
137
+
138
+ ```
139
+
140
+ - `./docs/`: Diretório contendo seus arquivos .md originais.
141
+ - `-output_file`: (opcional) Nome do arquivo consolidado. Padrão: `corpus_consolidated.md`.
142
+
143
+ #### Extrair Dados do Markdown Consolidado (`extract`):
144
+
145
+ ```bash
146
+ docs-cli extract --input_file corpus_consolidated.md --output_file raw_docs.json
147
+ ```
148
+
149
+ - `-input_file`: (Opcional) Arquivo .md consolidado. Padrão: `corpus_consolidated.md`.
150
+ - `-output_file`: (Opcional) Arquivo JSON para os dados brutos. Padrão: `raw_docs.json`.
151
+
152
+ #### Gerar Embeddings (`generate_embeddings`):
153
+
154
+ ```bash
155
+ docs-cli generate_embeddings --input_file raw_docs.json --output_file embeddings.json
156
+ ```
157
+
158
+ - `-input_file`: (Opcional) Arquivo JSON com os dados brutos. Padrão: `raw_docs.json`.
159
+ - `-output_file`: (Opcional) Arquivo JSON para os embeddings. Padrão: `embeddings.json`.
160
+
161
+ #### Limpar CSV de Q&A (`clean_csv`):
162
+
163
+ ```bash
164
+ docs-cli clean_csv ./csv/qa_bruto.csv --output_file qa_processado.csv
165
+ ```
166
+
167
+ - `./csv/qa_bruto.csv`: Caminho para o arquivo CSV de perguntas e respostas bruto.
168
+ - `-output_file`: (Opcional) Nome do arquivo CSV processado. Padrão: `gartner_filtrado_processed.csv`.
169
+
170
+ #### Avaliar Cobertura (`evaluate_coverage`):
171
+
172
+ ```bash
173
+ docs-cli evaluate qa_processado.csv embeddings.json -k 5 -o evaluation_results.json
174
+ ```
175
+
176
+ - `qa_processado.csv`: Caminho para o arquivo CSV de perguntas e respostas processado.
177
+ - `embeddings.json`: Caminho para o arquivo JSON com os embeddings.
178
+ - `-k`: (Opcional) Número de resultados a retornar. Padrão: 5.
179
+ - `-o`: (Opcional) Nome do arquivo JSON para os resultados da avaliação. Padrão: `evaluation_results.json`.
180
+ De forma geral, os parâmetros são:
181
+
182
+ | Parâmetro | Tipo | Obrigatório | Descrição |
183
+ |--------------------------|---------|-------------|-------------------------------------------------------------------------------------------------|
184
+ | `qa_file` | string | Sim | Caminho para o arquivo CSV com perguntas e respostas |
185
+ | `embeddings_file` | string | Sim | Caminho para o arquivo JSON com os chunks processados e embeddings |
186
+ | `-k`, `--top-k` | inteiro | Não | Número de chunks mais relevantes a considerar (padrão: `5`) |
187
+ | `-o`, `--output` | string | Não | Caminho do arquivo de saída para os resultados (padrão: `evaluation_results.json`) |
188
+
189
+ #### Gerar Relatório Markdown (`generate_report`):
190
+
191
+ ```bash
192
+ docs-cli generate_report evaluation_results.json --output_file coverage_report.md
193
+ ```
194
+
195
+ - `evaluation_results.json`: Caminho para o arquivo JSON com os resultados da avaliação.
196
+ - `-output_file`: (Opcional) Nome do arquivo Markdown para o relatório. Padrão: `coverage_report.md`.
197
+
198
+ #### Gerar Relatório HTML (`generate_report_html`):
199
+
200
+ ```bash
201
+ docs-cli generate_report_html evaluation_results.json --output_file coverage_report.html
202
+ ```
203
+
204
+ - `evaluation_results.json`: Caminho para o arquivo JSON com os resultados da avaliação.
205
+ - `-output_file`: (Opcional) Nome do arquivo HTML para o relatório. Padrão: `coverage_report.html`.
206
+
207
+ ## Executando o Toolkit Completo
208
+ Para executar todo o fluxo de trabalho do toolkit, você pode usar o comando principal `docs_tc.py` com o subcomando `full_flow`. Este comando executa todos os passos necessários, desde a consolidação dos documentos até a geração dos relatórios.
209
+
210
+ ```bash
211
+ docs-cli full_flow ./docs/ ./csv/qa_bruto.csv --eval_top_k 5 --embeddings_file embedings.json
212
+ ```
213
+
214
+ ## Manutenção e Versionamento
215
+
216
+ - NÃO FAÇA COMMIT do seu arquivo `.env` contendo a `GOOGLE_API_KEY`.
217
+ - NÃO FAÇA COMMIT dos arquivos de dados gerados automaticamente (como `corpus_consolidated.md`, `raw_docs.json`, `embedings.json`, `evaluation_results.json`, etc.), a menos que tenha um motivo específico para versionar um estado particular desses dados. Adicione-os ao seu `.gitignore`.
218
+ - O arquivo CSV original com os dados de Q&A e os arquivos Markdown originais da sua documentação podem e devem ser versionados se fizerem parte da fonte do seu projeto.
219
+
220
+ ---
221
+
222
+ Dê um alô :)
223
+ paulo[at]paulogpd.com.br
@@ -0,0 +1,202 @@
1
+ # Toolkit de Análise e Cobertura de Documentação Técnica (`docs-cli`)
2
+
3
+ Este toolkit fornece um conjunto de scripts Python para processar documentação técnica em formato Markdown, gerar embeddings semânticos, avaliar a cobertura da documentação em relação a um conjunto de perguntas e respostas, e gerar relatórios detalhados. O script principal `docs_tc.py` orquestra a execução dos scripts individuais.
4
+
5
+ ## Pré-requisitos
6
+
7
+ 1. **Python 3.7+**: certifique-se de que o Python está instalado e configurado no seu PATH.
8
+ 2. **Dependências Python**: instale as bibliotecas necessárias. É recomendado criar um ambiente virtual:
9
+ ```bash
10
+ python -m venv venv
11
+ source venv/bin/activate # Linux/macOS
12
+ # venv\Scripts\activate # Windows
13
+ pip install google-generativeai python-dotenv numpy pandas
14
+ ```
15
+ Você também pode criar um arquivo `requirements.txt` com o conteúdo acima e rodar `pip install -r requirements.txt`.
16
+ 3. **Chave da API Google Gemini**:
17
+ * Crie um arquivo chamado `.env` na raiz do projeto.
18
+ * Dentro do `.env`, adicione sua chave da API:
19
+ ```
20
+ GOOGLE_API_KEY="SUA_CHAVE_API_AQUI"
21
+ ```
22
+ * **IMPORTANTE**: o arquivo `.env` contém informações sensíveis e **não deve ser versionado** no Git. Adicione `.env` ao seu arquivo `.gitignore`.
23
+
24
+ ## Estrutura de Arquivos Esperada (Antes da Execução)
25
+
26
+ ```txt
27
+ /seu-projeto-raiz/
28
+ |-- docs_tc.py # Script orquestrador principal
29
+ |-- merge_markdown.py # Script para consolidar .md
30
+ |-- extract_data_from_markdown.py # Script para extrair dados do .md consolidado
31
+ |-- generate_embeddings.py # Script para gerar embeddings
32
+ |-- limpa_csv.py # Script para limpar o CSV de Q&A
33
+ |-- evaluate_coverage.py # Script para avaliar a cobertura
34
+ |-- generate_report.py # Script para gerar relatório .md
35
+ |-- generate_report_html.py # Script para gerar relatório .html
36
+ ```
37
+ ## Arquivos Gerados (e não versionados por padrão):
38
+
39
+ Os seguintes arquivos são gerados durante a execução dos scripts. É recomendado adicioná-los ao seu `.gitignore` se você não pretende versioná-los:
40
+
41
+ - `corpus_consolidated.md`
42
+ - `raw_docs.json`
43
+ - `embedings.json` (ou o nome que você usar para o arquivo de embeddings)
44
+ - `gartner_filtrado_processed.csv` (ou o nome do seu CSV de Q&A limpo)
45
+ - `evaluation_results.json`
46
+ - `coverage_report.md`
47
+ - `coverage_report.html`
48
+
49
+ ### Configuração do `.gitignore`:
50
+
51
+ #### Arquivos de Ambiente
52
+ ```gitignore
53
+ .env
54
+ chaves/.env
55
+ ```
56
+ #### Arquivos de Dados Gerados
57
+ ```gitignore
58
+ # Ignorar arquivos gerados automaticamente
59
+ *.json
60
+ *.csv
61
+ *.md
62
+ *.html
63
+ ```
64
+
65
+ #### Exceto os arquivos que SÃO parte do toolkit/interface
66
+
67
+ ```bash
68
+ # Mantenha estes arquivos versionados (exceções à regra global)
69
+ !docs_tc.py
70
+ !merge_markdown.py
71
+ !extract_data_from_markdown.py
72
+ !generate_embedings.py
73
+ !limpa_csv.py
74
+ !evaluate_coverage.py
75
+ !generate_report.py
76
+ !generate_report_html.py
77
+ !assistente/index.html
78
+ !assistente/about.html
79
+ !assistente/mudanca.html
80
+ !README.md
81
+ !requirements.txt
82
+ ```
83
+
84
+ #### Arquivos de Cache Python
85
+ ```gitignore
86
+ pycache/
87
+ *.py[cod]
88
+ *$py.class
89
+ ```
90
+ #### Ambiente Virtual
91
+ ```gitignore
92
+ venv/
93
+ ```
94
+
95
+ - Ajuste o `.gitignore` acima para manter os arquivos `.md` e `.html` que são parte da sua documentação ou da ferramenta em si (como este `README.md` ou o `index.html` da interface).*
96
+ - No exemplo acima, `*.json`, `*.csv`, `*.md`, `*.html` são ignorados globalmente, e depois exceções são adicionadas. Seus arquivos de documentação originais em `DocumentosMD/` e o CSV bruto em `DadosQA/` **não serão ignorados** por esta configuração, o que é o desejado.*
97
+
98
+ ## Utilização do `docs-cli`
99
+
100
+ O `docs_tc.py` é o ponto de entrada principal para utilizar o toolkit. Abra um terminal na raiz do projeto.
101
+
102
+ ### 1. Ajuda Geral e de Comandos:
103
+
104
+ ```bash
105
+ docs-cli -h
106
+ docs-cli <comando> -h # Ex: docs-cli merge -h
107
+ ```
108
+ ### 2. Execução de Comandos Individuais:
109
+
110
+ Cada script pode ser chamado por um subcomando. Os nomes de arquivo padrão são usados se não especificados.
111
+
112
+ #### Consolidar Documentos (`merge`):
113
+
114
+ ```bash
115
+ docs-cli merge ./docs/ --output_file corpus_consolidated.md
116
+
117
+ ```
118
+
119
+ - `./docs/`: Diretório contendo seus arquivos .md originais.
120
+ - `-output_file`: (opcional) Nome do arquivo consolidado. Padrão: `corpus_consolidated.md`.
121
+
122
+ #### Extrair Dados do Markdown Consolidado (`extract`):
123
+
124
+ ```bash
125
+ docs-cli extract --input_file corpus_consolidated.md --output_file raw_docs.json
126
+ ```
127
+
128
+ - `-input_file`: (Opcional) Arquivo .md consolidado. Padrão: `corpus_consolidated.md`.
129
+ - `-output_file`: (Opcional) Arquivo JSON para os dados brutos. Padrão: `raw_docs.json`.
130
+
131
+ #### Gerar Embeddings (`generate_embeddings`):
132
+
133
+ ```bash
134
+ docs-cli generate_embeddings --input_file raw_docs.json --output_file embeddings.json
135
+ ```
136
+
137
+ - `-input_file`: (Opcional) Arquivo JSON com os dados brutos. Padrão: `raw_docs.json`.
138
+ - `-output_file`: (Opcional) Arquivo JSON para os embeddings. Padrão: `embeddings.json`.
139
+
140
+ #### Limpar CSV de Q&A (`clean_csv`):
141
+
142
+ ```bash
143
+ docs-cli clean_csv ./csv/qa_bruto.csv --output_file qa_processado.csv
144
+ ```
145
+
146
+ - `./csv/qa_bruto.csv`: Caminho para o arquivo CSV de perguntas e respostas bruto.
147
+ - `-output_file`: (Opcional) Nome do arquivo CSV processado. Padrão: `gartner_filtrado_processed.csv`.
148
+
149
+ #### Avaliar Cobertura (`evaluate_coverage`):
150
+
151
+ ```bash
152
+ docs-cli evaluate qa_processado.csv embeddings.json -k 5 -o evaluation_results.json
153
+ ```
154
+
155
+ - `qa_processado.csv`: Caminho para o arquivo CSV de perguntas e respostas processado.
156
+ - `embeddings.json`: Caminho para o arquivo JSON com os embeddings.
157
+ - `-k`: (Opcional) Número de resultados a retornar. Padrão: 5.
158
+ - `-o`: (Opcional) Nome do arquivo JSON para os resultados da avaliação. Padrão: `evaluation_results.json`.
159
+ De forma geral, os parâmetros são:
160
+
161
+ | Parâmetro | Tipo | Obrigatório | Descrição |
162
+ |--------------------------|---------|-------------|-------------------------------------------------------------------------------------------------|
163
+ | `qa_file` | string | Sim | Caminho para o arquivo CSV com perguntas e respostas |
164
+ | `embeddings_file` | string | Sim | Caminho para o arquivo JSON com os chunks processados e embeddings |
165
+ | `-k`, `--top-k` | inteiro | Não | Número de chunks mais relevantes a considerar (padrão: `5`) |
166
+ | `-o`, `--output` | string | Não | Caminho do arquivo de saída para os resultados (padrão: `evaluation_results.json`) |
167
+
168
+ #### Gerar Relatório Markdown (`generate_report`):
169
+
170
+ ```bash
171
+ docs-cli generate_report evaluation_results.json --output_file coverage_report.md
172
+ ```
173
+
174
+ - `evaluation_results.json`: Caminho para o arquivo JSON com os resultados da avaliação.
175
+ - `-output_file`: (Opcional) Nome do arquivo Markdown para o relatório. Padrão: `coverage_report.md`.
176
+
177
+ #### Gerar Relatório HTML (`generate_report_html`):
178
+
179
+ ```bash
180
+ docs-cli generate_report_html evaluation_results.json --output_file coverage_report.html
181
+ ```
182
+
183
+ - `evaluation_results.json`: Caminho para o arquivo JSON com os resultados da avaliação.
184
+ - `-output_file`: (Opcional) Nome do arquivo HTML para o relatório. Padrão: `coverage_report.html`.
185
+
186
+ ## Executando o Toolkit Completo
187
+ Para executar todo o fluxo de trabalho do toolkit, você pode usar o comando principal `docs_tc.py` com o subcomando `full_flow`. Este comando executa todos os passos necessários, desde a consolidação dos documentos até a geração dos relatórios.
188
+
189
+ ```bash
190
+ docs-cli full_flow ./docs/ ./csv/qa_bruto.csv --eval_top_k 5 --embeddings_file embedings.json
191
+ ```
192
+
193
+ ## Manutenção e Versionamento
194
+
195
+ - NÃO FAÇA COMMIT do seu arquivo `.env` contendo a `GOOGLE_API_KEY`.
196
+ - NÃO FAÇA COMMIT dos arquivos de dados gerados automaticamente (como `corpus_consolidated.md`, `raw_docs.json`, `embedings.json`, `evaluation_results.json`, etc.), a menos que tenha um motivo específico para versionar um estado particular desses dados. Adicione-os ao seu `.gitignore`.
197
+ - O arquivo CSV original com os dados de Q&A e os arquivos Markdown originais da sua documentação podem e devem ser versionados se fizerem parte da fonte do seu projeto.
198
+
199
+ ---
200
+
201
+ Dê um alô :)
202
+ paulo[at]paulogpd.com.br
@@ -0,0 +1,223 @@
1
+ Metadata-Version: 2.4
2
+ Name: docs-cli
3
+ Version: 0.1.0
4
+ Summary: Um toolkit para processamento e avaliação de documentação.
5
+ Author-email: Paulo Guilherme Pilott <seuemail@example.com>
6
+ License: MIT License
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: License :: OSI Approved :: MIT License
9
+ Classifier: Operating System :: OS Independent
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Topic :: Documentation
13
+ Classifier: Topic :: Utilities
14
+ Classifier: Environment :: Console
15
+ Requires-Python: >=3.8
16
+ Description-Content-Type: text/markdown
17
+ Requires-Dist: google-generativeai
18
+ Requires-Dist: python-dotenv
19
+ Requires-Dist: numpy
20
+ Requires-Dist: pandas
21
+
22
+ # Toolkit de Análise e Cobertura de Documentação Técnica (`docs-cli`)
23
+
24
+ Este toolkit fornece um conjunto de scripts Python para processar documentação técnica em formato Markdown, gerar embeddings semânticos, avaliar a cobertura da documentação em relação a um conjunto de perguntas e respostas, e gerar relatórios detalhados. O script principal `docs_tc.py` orquestra a execução dos scripts individuais.
25
+
26
+ ## Pré-requisitos
27
+
28
+ 1. **Python 3.7+**: certifique-se de que o Python está instalado e configurado no seu PATH.
29
+ 2. **Dependências Python**: instale as bibliotecas necessárias. É recomendado criar um ambiente virtual:
30
+ ```bash
31
+ python -m venv venv
32
+ source venv/bin/activate # Linux/macOS
33
+ # venv\Scripts\activate # Windows
34
+ pip install google-generativeai python-dotenv numpy pandas
35
+ ```
36
+ Você também pode criar um arquivo `requirements.txt` com o conteúdo acima e rodar `pip install -r requirements.txt`.
37
+ 3. **Chave da API Google Gemini**:
38
+ * Crie um arquivo chamado `.env` na raiz do projeto.
39
+ * Dentro do `.env`, adicione sua chave da API:
40
+ ```
41
+ GOOGLE_API_KEY="SUA_CHAVE_API_AQUI"
42
+ ```
43
+ * **IMPORTANTE**: o arquivo `.env` contém informações sensíveis e **não deve ser versionado** no Git. Adicione `.env` ao seu arquivo `.gitignore`.
44
+
45
+ ## Estrutura de Arquivos Esperada (Antes da Execução)
46
+
47
+ ```txt
48
+ /seu-projeto-raiz/
49
+ |-- docs_tc.py # Script orquestrador principal
50
+ |-- merge_markdown.py # Script para consolidar .md
51
+ |-- extract_data_from_markdown.py # Script para extrair dados do .md consolidado
52
+ |-- generate_embeddings.py # Script para gerar embeddings
53
+ |-- limpa_csv.py # Script para limpar o CSV de Q&A
54
+ |-- evaluate_coverage.py # Script para avaliar a cobertura
55
+ |-- generate_report.py # Script para gerar relatório .md
56
+ |-- generate_report_html.py # Script para gerar relatório .html
57
+ ```
58
+ ## Arquivos Gerados (e não versionados por padrão):
59
+
60
+ Os seguintes arquivos são gerados durante a execução dos scripts. É recomendado adicioná-los ao seu `.gitignore` se você não pretende versioná-los:
61
+
62
+ - `corpus_consolidated.md`
63
+ - `raw_docs.json`
64
+ - `embedings.json` (ou o nome que você usar para o arquivo de embeddings)
65
+ - `gartner_filtrado_processed.csv` (ou o nome do seu CSV de Q&A limpo)
66
+ - `evaluation_results.json`
67
+ - `coverage_report.md`
68
+ - `coverage_report.html`
69
+
70
+ ### Configuração do `.gitignore`:
71
+
72
+ #### Arquivos de Ambiente
73
+ ```gitignore
74
+ .env
75
+ chaves/.env
76
+ ```
77
+ #### Arquivos de Dados Gerados
78
+ ```gitignore
79
+ # Ignorar arquivos gerados automaticamente
80
+ *.json
81
+ *.csv
82
+ *.md
83
+ *.html
84
+ ```
85
+
86
+ #### Exceto os arquivos que SÃO parte do toolkit/interface
87
+
88
+ ```bash
89
+ # Mantenha estes arquivos versionados (exceções à regra global)
90
+ !docs_tc.py
91
+ !merge_markdown.py
92
+ !extract_data_from_markdown.py
93
+ !generate_embedings.py
94
+ !limpa_csv.py
95
+ !evaluate_coverage.py
96
+ !generate_report.py
97
+ !generate_report_html.py
98
+ !assistente/index.html
99
+ !assistente/about.html
100
+ !assistente/mudanca.html
101
+ !README.md
102
+ !requirements.txt
103
+ ```
104
+
105
+ #### Arquivos de Cache Python
106
+ ```gitignore
107
+ pycache/
108
+ *.py[cod]
109
+ *$py.class
110
+ ```
111
+ #### Ambiente Virtual
112
+ ```gitignore
113
+ venv/
114
+ ```
115
+
116
+ - Ajuste o `.gitignore` acima para manter os arquivos `.md` e `.html` que são parte da sua documentação ou da ferramenta em si (como este `README.md` ou o `index.html` da interface).*
117
+ - No exemplo acima, `*.json`, `*.csv`, `*.md`, `*.html` são ignorados globalmente, e depois exceções são adicionadas. Seus arquivos de documentação originais em `DocumentosMD/` e o CSV bruto em `DadosQA/` **não serão ignorados** por esta configuração, o que é o desejado.*
118
+
119
+ ## Utilização do `docs-cli`
120
+
121
+ O `docs_tc.py` é o ponto de entrada principal para utilizar o toolkit. Abra um terminal na raiz do projeto.
122
+
123
+ ### 1. Ajuda Geral e de Comandos:
124
+
125
+ ```bash
126
+ docs-cli -h
127
+ docs-cli <comando> -h # Ex: docs-cli merge -h
128
+ ```
129
+ ### 2. Execução de Comandos Individuais:
130
+
131
+ Cada script pode ser chamado por um subcomando. Os nomes de arquivo padrão são usados se não especificados.
132
+
133
+ #### Consolidar Documentos (`merge`):
134
+
135
+ ```bash
136
+ docs-cli merge ./docs/ --output_file corpus_consolidated.md
137
+
138
+ ```
139
+
140
+ - `./docs/`: Diretório contendo seus arquivos .md originais.
141
+ - `-output_file`: (opcional) Nome do arquivo consolidado. Padrão: `corpus_consolidated.md`.
142
+
143
+ #### Extrair Dados do Markdown Consolidado (`extract`):
144
+
145
+ ```bash
146
+ docs-cli extract --input_file corpus_consolidated.md --output_file raw_docs.json
147
+ ```
148
+
149
+ - `-input_file`: (Opcional) Arquivo .md consolidado. Padrão: `corpus_consolidated.md`.
150
+ - `-output_file`: (Opcional) Arquivo JSON para os dados brutos. Padrão: `raw_docs.json`.
151
+
152
+ #### Gerar Embeddings (`generate_embeddings`):
153
+
154
+ ```bash
155
+ docs-cli generate_embeddings --input_file raw_docs.json --output_file embeddings.json
156
+ ```
157
+
158
+ - `-input_file`: (Opcional) Arquivo JSON com os dados brutos. Padrão: `raw_docs.json`.
159
+ - `-output_file`: (Opcional) Arquivo JSON para os embeddings. Padrão: `embeddings.json`.
160
+
161
+ #### Limpar CSV de Q&A (`clean_csv`):
162
+
163
+ ```bash
164
+ docs-cli clean_csv ./csv/qa_bruto.csv --output_file qa_processado.csv
165
+ ```
166
+
167
+ - `./csv/qa_bruto.csv`: Caminho para o arquivo CSV de perguntas e respostas bruto.
168
+ - `-output_file`: (Opcional) Nome do arquivo CSV processado. Padrão: `gartner_filtrado_processed.csv`.
169
+
170
+ #### Avaliar Cobertura (`evaluate_coverage`):
171
+
172
+ ```bash
173
+ docs-cli evaluate qa_processado.csv embeddings.json -k 5 -o evaluation_results.json
174
+ ```
175
+
176
+ - `qa_processado.csv`: Caminho para o arquivo CSV de perguntas e respostas processado.
177
+ - `embeddings.json`: Caminho para o arquivo JSON com os embeddings.
178
+ - `-k`: (Opcional) Número de resultados a retornar. Padrão: 5.
179
+ - `-o`: (Opcional) Nome do arquivo JSON para os resultados da avaliação. Padrão: `evaluation_results.json`.
180
+ De forma geral, os parâmetros são:
181
+
182
+ | Parâmetro | Tipo | Obrigatório | Descrição |
183
+ |--------------------------|---------|-------------|-------------------------------------------------------------------------------------------------|
184
+ | `qa_file` | string | Sim | Caminho para o arquivo CSV com perguntas e respostas |
185
+ | `embeddings_file` | string | Sim | Caminho para o arquivo JSON com os chunks processados e embeddings |
186
+ | `-k`, `--top-k` | inteiro | Não | Número de chunks mais relevantes a considerar (padrão: `5`) |
187
+ | `-o`, `--output` | string | Não | Caminho do arquivo de saída para os resultados (padrão: `evaluation_results.json`) |
188
+
189
+ #### Gerar Relatório Markdown (`generate_report`):
190
+
191
+ ```bash
192
+ docs-cli generate_report evaluation_results.json --output_file coverage_report.md
193
+ ```
194
+
195
+ - `evaluation_results.json`: Caminho para o arquivo JSON com os resultados da avaliação.
196
+ - `-output_file`: (Opcional) Nome do arquivo Markdown para o relatório. Padrão: `coverage_report.md`.
197
+
198
+ #### Gerar Relatório HTML (`generate_report_html`):
199
+
200
+ ```bash
201
+ docs-cli generate_report_html evaluation_results.json --output_file coverage_report.html
202
+ ```
203
+
204
+ - `evaluation_results.json`: Caminho para o arquivo JSON com os resultados da avaliação.
205
+ - `-output_file`: (Opcional) Nome do arquivo HTML para o relatório. Padrão: `coverage_report.html`.
206
+
207
+ ## Executando o Toolkit Completo
208
+ Para executar todo o fluxo de trabalho do toolkit, você pode usar o comando principal `docs_tc.py` com o subcomando `full_flow`. Este comando executa todos os passos necessários, desde a consolidação dos documentos até a geração dos relatórios.
209
+
210
+ ```bash
211
+ docs-cli full_flow ./docs/ ./csv/qa_bruto.csv --eval_top_k 5 --embeddings_file embedings.json
212
+ ```
213
+
214
+ ## Manutenção e Versionamento
215
+
216
+ - NÃO FAÇA COMMIT do seu arquivo `.env` contendo a `GOOGLE_API_KEY`.
217
+ - NÃO FAÇA COMMIT dos arquivos de dados gerados automaticamente (como `corpus_consolidated.md`, `raw_docs.json`, `embedings.json`, `evaluation_results.json`, etc.), a menos que tenha um motivo específico para versionar um estado particular desses dados. Adicione-os ao seu `.gitignore`.
218
+ - O arquivo CSV original com os dados de Q&A e os arquivos Markdown originais da sua documentação podem e devem ser versionados se fizerem parte da fonte do seu projeto.
219
+
220
+ ---
221
+
222
+ Dê um alô :)
223
+ paulo[at]paulogpd.com.br
@@ -0,0 +1,17 @@
1
+ README.md
2
+ docs_tc.py
3
+ evaluate_coverage.py
4
+ extract_data_from_markdown.py
5
+ generate_embeddings.py
6
+ generate_report.py
7
+ generate_report_html.py
8
+ limpa_csv.py
9
+ merge_markdown.py
10
+ pyproject.toml
11
+ setup.py
12
+ docs_cli.egg-info/PKG-INFO
13
+ docs_cli.egg-info/SOURCES.txt
14
+ docs_cli.egg-info/dependency_links.txt
15
+ docs_cli.egg-info/entry_points.txt
16
+ docs_cli.egg-info/requires.txt
17
+ docs_cli.egg-info/top_level.txt
@@ -0,0 +1,9 @@
1
+ [console_scripts]
2
+ docs-cli = docs_tc:main
3
+ docs-tc-clean-csv = limpa_csv:cli_main
4
+ docs-tc-evaluate-coverage = evaluate_coverage:cli_main
5
+ docs-tc-extract-data = extract_data_from_markdown:cli_main
6
+ docs-tc-generate-embeddings = generate_embedings:cli_main
7
+ docs-tc-generate-report-html = generate_report_html:cli_main
8
+ docs-tc-generate-report-md = generate_report:cli_main
9
+ docs-tc-merge-markdown = merge_markdown:cli_main
@@ -0,0 +1,4 @@
1
+ google-generativeai
2
+ python-dotenv
3
+ numpy
4
+ pandas