vectorgov-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.
- vectorgov_cli-0.1.0/.gitignore +111 -0
- vectorgov_cli-0.1.0/PKG-INFO +273 -0
- vectorgov_cli-0.1.0/README.md +220 -0
- vectorgov_cli-0.1.0/pyproject.toml +103 -0
- vectorgov_cli-0.1.0/src/vectorgov/cli/__init__.py +12 -0
- vectorgov_cli-0.1.0/src/vectorgov/cli/commands/__init__.py +7 -0
- vectorgov_cli-0.1.0/src/vectorgov/cli/commands/ask.py +158 -0
- vectorgov_cli-0.1.0/src/vectorgov/cli/commands/auth.py +106 -0
- vectorgov_cli-0.1.0/src/vectorgov/cli/commands/config.py +114 -0
- vectorgov_cli-0.1.0/src/vectorgov/cli/commands/docs.py +113 -0
- vectorgov_cli-0.1.0/src/vectorgov/cli/commands/feedback.py +59 -0
- vectorgov_cli-0.1.0/src/vectorgov/cli/commands/search.py +97 -0
- vectorgov_cli-0.1.0/src/vectorgov/cli/main.py +53 -0
- vectorgov_cli-0.1.0/src/vectorgov/cli/utils/__init__.py +8 -0
- vectorgov_cli-0.1.0/src/vectorgov/cli/utils/config.py +110 -0
- vectorgov_cli-0.1.0/src/vectorgov/cli/utils/output.py +103 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
*.egg-info/
|
|
24
|
+
.installed.cfg
|
|
25
|
+
*.egg
|
|
26
|
+
|
|
27
|
+
# PyInstaller
|
|
28
|
+
*.manifest
|
|
29
|
+
*.spec
|
|
30
|
+
|
|
31
|
+
# Installer logs
|
|
32
|
+
pip-log.txt
|
|
33
|
+
pip-delete-this-directory.txt
|
|
34
|
+
|
|
35
|
+
# Unit test / coverage reports
|
|
36
|
+
htmlcov/
|
|
37
|
+
.tox/
|
|
38
|
+
.nox/
|
|
39
|
+
.coverage
|
|
40
|
+
.coverage.*
|
|
41
|
+
.cache
|
|
42
|
+
nosetests.xml
|
|
43
|
+
coverage.xml
|
|
44
|
+
*.cover
|
|
45
|
+
*.py,cover
|
|
46
|
+
.hypothesis/
|
|
47
|
+
.pytest_cache/
|
|
48
|
+
|
|
49
|
+
# Translations
|
|
50
|
+
*.mo
|
|
51
|
+
*.pot
|
|
52
|
+
|
|
53
|
+
# Environments
|
|
54
|
+
.env
|
|
55
|
+
.venv
|
|
56
|
+
env/
|
|
57
|
+
venv/
|
|
58
|
+
ENV/
|
|
59
|
+
env.bak/
|
|
60
|
+
venv.bak/
|
|
61
|
+
|
|
62
|
+
# Spyder project settings
|
|
63
|
+
.spyderproject
|
|
64
|
+
.spyproject
|
|
65
|
+
|
|
66
|
+
# Rope project settings
|
|
67
|
+
.ropeproject
|
|
68
|
+
|
|
69
|
+
# mkdocs documentation
|
|
70
|
+
/site
|
|
71
|
+
|
|
72
|
+
# mypy
|
|
73
|
+
.mypy_cache/
|
|
74
|
+
.dmypy.json
|
|
75
|
+
dmypy.json
|
|
76
|
+
|
|
77
|
+
# IDE
|
|
78
|
+
.idea/
|
|
79
|
+
.vscode/
|
|
80
|
+
*.swp
|
|
81
|
+
*.swo
|
|
82
|
+
|
|
83
|
+
# OS files
|
|
84
|
+
.DS_Store
|
|
85
|
+
Thumbs.db
|
|
86
|
+
|
|
87
|
+
# Project specific
|
|
88
|
+
*.log
|
|
89
|
+
*.tmp
|
|
90
|
+
|
|
91
|
+
# Docker
|
|
92
|
+
.docker/
|
|
93
|
+
|
|
94
|
+
# Model files (large files)
|
|
95
|
+
*.bin
|
|
96
|
+
*.onnx
|
|
97
|
+
*.pt
|
|
98
|
+
*.pth
|
|
99
|
+
*.safetensors
|
|
100
|
+
|
|
101
|
+
# Data files that should not be committed
|
|
102
|
+
# Uncomment if needed:
|
|
103
|
+
# extracao/data/output/
|
|
104
|
+
|
|
105
|
+
# Credentials and secrets (NEVER commit)
|
|
106
|
+
docs/conexoes.md
|
|
107
|
+
*.credentials
|
|
108
|
+
*.secrets
|
|
109
|
+
.env.local
|
|
110
|
+
.env.production
|
|
111
|
+
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: vectorgov-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: CLI para a API VectorGov - Busca semântica em legislação brasileira
|
|
5
|
+
Project-URL: Homepage, https://vectorgov.io
|
|
6
|
+
Project-URL: Documentation, https://vectorgov.io/documentacao
|
|
7
|
+
Project-URL: Repository, https://github.com/euteajudo/vectorgov-cli
|
|
8
|
+
Project-URL: Issues, https://github.com/euteajudo/vectorgov-cli/issues
|
|
9
|
+
Author-email: VectorGov <contato@vectorgov.io>
|
|
10
|
+
License-Expression: MIT
|
|
11
|
+
Keywords: brazil,cli,legal,legislation,licitacao,rag,semantic-search,vectorgov
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
+
Classifier: Topic :: Text Processing :: Linguistic
|
|
24
|
+
Requires-Python: >=3.9
|
|
25
|
+
Requires-Dist: pyyaml>=6.0.0
|
|
26
|
+
Requires-Dist: rich>=13.0.0
|
|
27
|
+
Requires-Dist: typer>=0.9.0
|
|
28
|
+
Requires-Dist: vectorgov>=0.13.0
|
|
29
|
+
Provides-Extra: all
|
|
30
|
+
Requires-Dist: anthropic>=0.18.0; extra == 'all'
|
|
31
|
+
Requires-Dist: google-generativeai>=0.3.0; extra == 'all'
|
|
32
|
+
Requires-Dist: langchain-core>=0.1.0; extra == 'all'
|
|
33
|
+
Requires-Dist: langchain>=0.1.0; extra == 'all'
|
|
34
|
+
Requires-Dist: openai>=1.0.0; extra == 'all'
|
|
35
|
+
Provides-Extra: anthropic
|
|
36
|
+
Requires-Dist: anthropic>=0.18.0; extra == 'anthropic'
|
|
37
|
+
Provides-Extra: dev
|
|
38
|
+
Requires-Dist: black>=23.0.0; extra == 'dev'
|
|
39
|
+
Requires-Dist: isort>=5.12.0; extra == 'dev'
|
|
40
|
+
Requires-Dist: mypy>=1.0.0; extra == 'dev'
|
|
41
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
|
|
42
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
43
|
+
Requires-Dist: pytest>=7.0.0; extra == 'dev'
|
|
44
|
+
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
45
|
+
Provides-Extra: google
|
|
46
|
+
Requires-Dist: google-generativeai>=0.3.0; extra == 'google'
|
|
47
|
+
Provides-Extra: langchain
|
|
48
|
+
Requires-Dist: langchain-core>=0.1.0; extra == 'langchain'
|
|
49
|
+
Requires-Dist: langchain>=0.1.0; extra == 'langchain'
|
|
50
|
+
Provides-Extra: openai
|
|
51
|
+
Requires-Dist: openai>=1.0.0; extra == 'openai'
|
|
52
|
+
Description-Content-Type: text/markdown
|
|
53
|
+
|
|
54
|
+
# VectorGov CLI
|
|
55
|
+
|
|
56
|
+
Cliente de linha de comando para a API VectorGov - Busca semântica em legislação brasileira.
|
|
57
|
+
|
|
58
|
+
[](https://badge.fury.io/py/vectorgov-cli)
|
|
59
|
+
[](https://opensource.org/licenses/MIT)
|
|
60
|
+
|
|
61
|
+
## Instalação
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
pip install vectorgov-cli
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Configuração
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Configure sua API key
|
|
71
|
+
vectorgov auth login
|
|
72
|
+
|
|
73
|
+
# Ou via variável de ambiente
|
|
74
|
+
export VECTORGOV_API_KEY="vg_sua_chave"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Uso
|
|
78
|
+
|
|
79
|
+
### Busca
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Busca simples
|
|
83
|
+
vectorgov search "O que é ETP?"
|
|
84
|
+
|
|
85
|
+
# Com opções
|
|
86
|
+
vectorgov search "pesquisa de preços" --top-k 10 --mode precise
|
|
87
|
+
|
|
88
|
+
# Saída em JSON
|
|
89
|
+
vectorgov search "licitação" --output json
|
|
90
|
+
|
|
91
|
+
# JSON bruto (para pipes)
|
|
92
|
+
vectorgov search "licitação" --raw | jq '.hits[0].text'
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Perguntas (contexto para LLM)
|
|
96
|
+
|
|
97
|
+
O comando `ask` busca contexto relevante para você usar com seu próprio LLM (OpenAI, Anthropic, Google, etc).
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# Busca contexto para pergunta
|
|
101
|
+
vectorgov ask "O que é ETP?"
|
|
102
|
+
|
|
103
|
+
# Com mais contexto
|
|
104
|
+
vectorgov ask "Quando o ETP pode ser dispensado?" --top-k 10 --mode precise
|
|
105
|
+
|
|
106
|
+
# Saída em formato messages (pronto para LLM)
|
|
107
|
+
vectorgov ask "critérios de julgamento" --output json
|
|
108
|
+
|
|
109
|
+
# Mostrar código de exemplo para integração
|
|
110
|
+
vectorgov ask "O que é ETP?" --code
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Exemplo de integração com OpenAI:**
|
|
114
|
+
|
|
115
|
+
```python
|
|
116
|
+
from vectorgov import VectorGov
|
|
117
|
+
from openai import OpenAI
|
|
118
|
+
|
|
119
|
+
vg = VectorGov(api_key="vg_xxx")
|
|
120
|
+
openai = OpenAI()
|
|
121
|
+
|
|
122
|
+
results = vg.search("O que é ETP?", top_k=5)
|
|
123
|
+
|
|
124
|
+
response = openai.chat.completions.create(
|
|
125
|
+
model="gpt-4o",
|
|
126
|
+
messages=results.to_messages("O que é ETP?")
|
|
127
|
+
)
|
|
128
|
+
print(response.choices[0].message.content)
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Feedback
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# Após uma busca, use o query_id para feedback
|
|
135
|
+
vectorgov feedback abc123def456 --like
|
|
136
|
+
vectorgov feedback abc123def456 --dislike
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Documentos
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
# Lista documentos disponíveis
|
|
143
|
+
vectorgov docs list
|
|
144
|
+
|
|
145
|
+
# Informações de um documento
|
|
146
|
+
vectorgov docs info LEI-14133-2021
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Configuração
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
# Ver configuração atual
|
|
153
|
+
vectorgov config list
|
|
154
|
+
|
|
155
|
+
# Definir configuração
|
|
156
|
+
vectorgov config set default_mode precise
|
|
157
|
+
vectorgov config set default_top_k 10
|
|
158
|
+
|
|
159
|
+
# Ver valor específico
|
|
160
|
+
vectorgov config get api_key
|
|
161
|
+
|
|
162
|
+
# Remover configuração
|
|
163
|
+
vectorgov config delete default_mode
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Autenticação
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
# Login (salva API key)
|
|
170
|
+
vectorgov auth login
|
|
171
|
+
|
|
172
|
+
# Status da autenticação
|
|
173
|
+
vectorgov auth status
|
|
174
|
+
|
|
175
|
+
# Logout (remove API key)
|
|
176
|
+
vectorgov auth logout
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Formatos de Saída
|
|
180
|
+
|
|
181
|
+
### Tabela (padrão para search)
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
vectorgov search "O que é ETP?" --output table
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
Resultados para: O que é ETP?
|
|
189
|
+
Total: 5 | Latência: 1234ms | Cache: Não
|
|
190
|
+
|
|
191
|
+
┏━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓
|
|
192
|
+
┃ # ┃ Artigo ┃ Texto ┃ Score ┃
|
|
193
|
+
┡━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩
|
|
194
|
+
│ 1 │ Art. 3 │ ETP - Estudo Técnico Preliminar: documento constitutivo... │ 0.892 │
|
|
195
|
+
│ 2 │ Art. 1 │ Esta Instrução Normativa dispõe sobre a elaboração... │ 0.856 │
|
|
196
|
+
└───┴───────────┴────────────────────────────────────────────────────────────────┴─────────┘
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### JSON
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
vectorgov search "O que é ETP?" --output json
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
```json
|
|
206
|
+
{
|
|
207
|
+
"query": "O que é ETP?",
|
|
208
|
+
"total": 5,
|
|
209
|
+
"cached": false,
|
|
210
|
+
"latency_ms": 1234,
|
|
211
|
+
"hits": [
|
|
212
|
+
{
|
|
213
|
+
"text": "ETP - Estudo Técnico Preliminar...",
|
|
214
|
+
"article_number": "3",
|
|
215
|
+
"score": 0.892
|
|
216
|
+
}
|
|
217
|
+
]
|
|
218
|
+
}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## Integração com Outros Comandos
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
# Buscar e processar com jq
|
|
225
|
+
vectorgov search "ETP" --raw | jq '.hits[0].text'
|
|
226
|
+
|
|
227
|
+
# Buscar e salvar
|
|
228
|
+
vectorgov search "licitação" --output json > resultados.json
|
|
229
|
+
|
|
230
|
+
# Usar em scripts
|
|
231
|
+
QUERY_ID=$(vectorgov search "ETP" --raw | jq -r '.query_id')
|
|
232
|
+
vectorgov feedback $QUERY_ID --like
|
|
233
|
+
|
|
234
|
+
# Obter contexto para LLM
|
|
235
|
+
vectorgov ask "O que é ETP?" --raw | jq '.messages'
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## Variáveis de Ambiente
|
|
239
|
+
|
|
240
|
+
| Variável | Descrição |
|
|
241
|
+
|----------|-----------|
|
|
242
|
+
| `VECTORGOV_API_KEY` | API key para autenticação |
|
|
243
|
+
| `VECTORGOV_DEFAULT_MODE` | Modo de busca padrão (fast, balanced, precise) |
|
|
244
|
+
| `VECTORGOV_DEFAULT_TOP_K` | Número padrão de resultados |
|
|
245
|
+
|
|
246
|
+
## Arquivo de Configuração
|
|
247
|
+
|
|
248
|
+
Localização: `~/.vectorgov/config.yaml`
|
|
249
|
+
|
|
250
|
+
```yaml
|
|
251
|
+
api_key: vg_sua_chave
|
|
252
|
+
default_mode: balanced
|
|
253
|
+
default_top_k: 5
|
|
254
|
+
output_format: table
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## Ajuda
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
# Ajuda geral
|
|
261
|
+
vectorgov --help
|
|
262
|
+
|
|
263
|
+
# Ajuda de comando específico
|
|
264
|
+
vectorgov search --help
|
|
265
|
+
vectorgov ask --help
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
## Links
|
|
269
|
+
|
|
270
|
+
- [Documentação](https://vectorgov.io/documentacao)
|
|
271
|
+
- [Playground](https://vectorgov.io/playground)
|
|
272
|
+
- [SDK Python](https://pypi.org/project/vectorgov/)
|
|
273
|
+
- [SDK TypeScript](https://www.npmjs.com/package/vectorgov)
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# VectorGov CLI
|
|
2
|
+
|
|
3
|
+
Cliente de linha de comando para a API VectorGov - Busca semântica em legislação brasileira.
|
|
4
|
+
|
|
5
|
+
[](https://badge.fury.io/py/vectorgov-cli)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
## Instalação
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
pip install vectorgov-cli
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Configuração
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Configure sua API key
|
|
18
|
+
vectorgov auth login
|
|
19
|
+
|
|
20
|
+
# Ou via variável de ambiente
|
|
21
|
+
export VECTORGOV_API_KEY="vg_sua_chave"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Uso
|
|
25
|
+
|
|
26
|
+
### Busca
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Busca simples
|
|
30
|
+
vectorgov search "O que é ETP?"
|
|
31
|
+
|
|
32
|
+
# Com opções
|
|
33
|
+
vectorgov search "pesquisa de preços" --top-k 10 --mode precise
|
|
34
|
+
|
|
35
|
+
# Saída em JSON
|
|
36
|
+
vectorgov search "licitação" --output json
|
|
37
|
+
|
|
38
|
+
# JSON bruto (para pipes)
|
|
39
|
+
vectorgov search "licitação" --raw | jq '.hits[0].text'
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Perguntas (contexto para LLM)
|
|
43
|
+
|
|
44
|
+
O comando `ask` busca contexto relevante para você usar com seu próprio LLM (OpenAI, Anthropic, Google, etc).
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Busca contexto para pergunta
|
|
48
|
+
vectorgov ask "O que é ETP?"
|
|
49
|
+
|
|
50
|
+
# Com mais contexto
|
|
51
|
+
vectorgov ask "Quando o ETP pode ser dispensado?" --top-k 10 --mode precise
|
|
52
|
+
|
|
53
|
+
# Saída em formato messages (pronto para LLM)
|
|
54
|
+
vectorgov ask "critérios de julgamento" --output json
|
|
55
|
+
|
|
56
|
+
# Mostrar código de exemplo para integração
|
|
57
|
+
vectorgov ask "O que é ETP?" --code
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Exemplo de integração com OpenAI:**
|
|
61
|
+
|
|
62
|
+
```python
|
|
63
|
+
from vectorgov import VectorGov
|
|
64
|
+
from openai import OpenAI
|
|
65
|
+
|
|
66
|
+
vg = VectorGov(api_key="vg_xxx")
|
|
67
|
+
openai = OpenAI()
|
|
68
|
+
|
|
69
|
+
results = vg.search("O que é ETP?", top_k=5)
|
|
70
|
+
|
|
71
|
+
response = openai.chat.completions.create(
|
|
72
|
+
model="gpt-4o",
|
|
73
|
+
messages=results.to_messages("O que é ETP?")
|
|
74
|
+
)
|
|
75
|
+
print(response.choices[0].message.content)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Feedback
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Após uma busca, use o query_id para feedback
|
|
82
|
+
vectorgov feedback abc123def456 --like
|
|
83
|
+
vectorgov feedback abc123def456 --dislike
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Documentos
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# Lista documentos disponíveis
|
|
90
|
+
vectorgov docs list
|
|
91
|
+
|
|
92
|
+
# Informações de um documento
|
|
93
|
+
vectorgov docs info LEI-14133-2021
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Configuração
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# Ver configuração atual
|
|
100
|
+
vectorgov config list
|
|
101
|
+
|
|
102
|
+
# Definir configuração
|
|
103
|
+
vectorgov config set default_mode precise
|
|
104
|
+
vectorgov config set default_top_k 10
|
|
105
|
+
|
|
106
|
+
# Ver valor específico
|
|
107
|
+
vectorgov config get api_key
|
|
108
|
+
|
|
109
|
+
# Remover configuração
|
|
110
|
+
vectorgov config delete default_mode
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Autenticação
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# Login (salva API key)
|
|
117
|
+
vectorgov auth login
|
|
118
|
+
|
|
119
|
+
# Status da autenticação
|
|
120
|
+
vectorgov auth status
|
|
121
|
+
|
|
122
|
+
# Logout (remove API key)
|
|
123
|
+
vectorgov auth logout
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Formatos de Saída
|
|
127
|
+
|
|
128
|
+
### Tabela (padrão para search)
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
vectorgov search "O que é ETP?" --output table
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
Resultados para: O que é ETP?
|
|
136
|
+
Total: 5 | Latência: 1234ms | Cache: Não
|
|
137
|
+
|
|
138
|
+
┏━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓
|
|
139
|
+
┃ # ┃ Artigo ┃ Texto ┃ Score ┃
|
|
140
|
+
┡━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩
|
|
141
|
+
│ 1 │ Art. 3 │ ETP - Estudo Técnico Preliminar: documento constitutivo... │ 0.892 │
|
|
142
|
+
│ 2 │ Art. 1 │ Esta Instrução Normativa dispõe sobre a elaboração... │ 0.856 │
|
|
143
|
+
└───┴───────────┴────────────────────────────────────────────────────────────────┴─────────┘
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### JSON
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
vectorgov search "O que é ETP?" --output json
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"query": "O que é ETP?",
|
|
155
|
+
"total": 5,
|
|
156
|
+
"cached": false,
|
|
157
|
+
"latency_ms": 1234,
|
|
158
|
+
"hits": [
|
|
159
|
+
{
|
|
160
|
+
"text": "ETP - Estudo Técnico Preliminar...",
|
|
161
|
+
"article_number": "3",
|
|
162
|
+
"score": 0.892
|
|
163
|
+
}
|
|
164
|
+
]
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Integração com Outros Comandos
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# Buscar e processar com jq
|
|
172
|
+
vectorgov search "ETP" --raw | jq '.hits[0].text'
|
|
173
|
+
|
|
174
|
+
# Buscar e salvar
|
|
175
|
+
vectorgov search "licitação" --output json > resultados.json
|
|
176
|
+
|
|
177
|
+
# Usar em scripts
|
|
178
|
+
QUERY_ID=$(vectorgov search "ETP" --raw | jq -r '.query_id')
|
|
179
|
+
vectorgov feedback $QUERY_ID --like
|
|
180
|
+
|
|
181
|
+
# Obter contexto para LLM
|
|
182
|
+
vectorgov ask "O que é ETP?" --raw | jq '.messages'
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## Variáveis de Ambiente
|
|
186
|
+
|
|
187
|
+
| Variável | Descrição |
|
|
188
|
+
|----------|-----------|
|
|
189
|
+
| `VECTORGOV_API_KEY` | API key para autenticação |
|
|
190
|
+
| `VECTORGOV_DEFAULT_MODE` | Modo de busca padrão (fast, balanced, precise) |
|
|
191
|
+
| `VECTORGOV_DEFAULT_TOP_K` | Número padrão de resultados |
|
|
192
|
+
|
|
193
|
+
## Arquivo de Configuração
|
|
194
|
+
|
|
195
|
+
Localização: `~/.vectorgov/config.yaml`
|
|
196
|
+
|
|
197
|
+
```yaml
|
|
198
|
+
api_key: vg_sua_chave
|
|
199
|
+
default_mode: balanced
|
|
200
|
+
default_top_k: 5
|
|
201
|
+
output_format: table
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## Ajuda
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
# Ajuda geral
|
|
208
|
+
vectorgov --help
|
|
209
|
+
|
|
210
|
+
# Ajuda de comando específico
|
|
211
|
+
vectorgov search --help
|
|
212
|
+
vectorgov ask --help
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Links
|
|
216
|
+
|
|
217
|
+
- [Documentação](https://vectorgov.io/documentacao)
|
|
218
|
+
- [Playground](https://vectorgov.io/playground)
|
|
219
|
+
- [SDK Python](https://pypi.org/project/vectorgov/)
|
|
220
|
+
- [SDK TypeScript](https://www.npmjs.com/package/vectorgov)
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "vectorgov-cli"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "CLI para a API VectorGov - Busca semântica em legislação brasileira"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
requires-python = ">=3.9"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "VectorGov", email = "contato@vectorgov.io" }
|
|
14
|
+
]
|
|
15
|
+
keywords = [
|
|
16
|
+
"vectorgov",
|
|
17
|
+
"legal",
|
|
18
|
+
"legislation",
|
|
19
|
+
"semantic-search",
|
|
20
|
+
"rag",
|
|
21
|
+
"licitacao",
|
|
22
|
+
"brazil",
|
|
23
|
+
"cli"
|
|
24
|
+
]
|
|
25
|
+
classifiers = [
|
|
26
|
+
"Development Status :: 4 - Beta",
|
|
27
|
+
"Environment :: Console",
|
|
28
|
+
"Intended Audience :: Developers",
|
|
29
|
+
"License :: OSI Approved :: MIT License",
|
|
30
|
+
"Operating System :: OS Independent",
|
|
31
|
+
"Programming Language :: Python :: 3",
|
|
32
|
+
"Programming Language :: Python :: 3.9",
|
|
33
|
+
"Programming Language :: Python :: 3.10",
|
|
34
|
+
"Programming Language :: Python :: 3.11",
|
|
35
|
+
"Programming Language :: Python :: 3.12",
|
|
36
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
37
|
+
"Topic :: Text Processing :: Linguistic",
|
|
38
|
+
]
|
|
39
|
+
dependencies = [
|
|
40
|
+
"vectorgov>=0.13.0",
|
|
41
|
+
"typer>=0.9.0",
|
|
42
|
+
"rich>=13.0.0",
|
|
43
|
+
"pyyaml>=6.0.0",
|
|
44
|
+
]
|
|
45
|
+
|
|
46
|
+
[project.optional-dependencies]
|
|
47
|
+
dev = [
|
|
48
|
+
"pytest>=7.0.0",
|
|
49
|
+
"pytest-asyncio>=0.21.0",
|
|
50
|
+
"pytest-cov>=4.0.0",
|
|
51
|
+
"black>=23.0.0",
|
|
52
|
+
"isort>=5.12.0",
|
|
53
|
+
"mypy>=1.0.0",
|
|
54
|
+
"ruff>=0.1.0",
|
|
55
|
+
]
|
|
56
|
+
openai = ["openai>=1.0.0"]
|
|
57
|
+
anthropic = ["anthropic>=0.18.0"]
|
|
58
|
+
google = ["google-generativeai>=0.3.0"]
|
|
59
|
+
langchain = ["langchain>=0.1.0", "langchain-core>=0.1.0"]
|
|
60
|
+
all = [
|
|
61
|
+
"openai>=1.0.0",
|
|
62
|
+
"anthropic>=0.18.0",
|
|
63
|
+
"google-generativeai>=0.3.0",
|
|
64
|
+
"langchain>=0.1.0",
|
|
65
|
+
"langchain-core>=0.1.0",
|
|
66
|
+
]
|
|
67
|
+
|
|
68
|
+
[project.scripts]
|
|
69
|
+
vectorgov = "vectorgov.cli.main:main"
|
|
70
|
+
|
|
71
|
+
[project.urls]
|
|
72
|
+
Homepage = "https://vectorgov.io"
|
|
73
|
+
Documentation = "https://vectorgov.io/documentacao"
|
|
74
|
+
Repository = "https://github.com/euteajudo/vectorgov-cli"
|
|
75
|
+
Issues = "https://github.com/euteajudo/vectorgov-cli/issues"
|
|
76
|
+
|
|
77
|
+
[tool.hatch.build.targets.sdist]
|
|
78
|
+
include = [
|
|
79
|
+
"/src",
|
|
80
|
+
"/README.md",
|
|
81
|
+
"/LICENSE",
|
|
82
|
+
]
|
|
83
|
+
|
|
84
|
+
[tool.hatch.build.targets.wheel]
|
|
85
|
+
packages = ["src/vectorgov"]
|
|
86
|
+
|
|
87
|
+
[tool.black]
|
|
88
|
+
line-length = 100
|
|
89
|
+
target-version = ["py39", "py310", "py311", "py312"]
|
|
90
|
+
|
|
91
|
+
[tool.isort]
|
|
92
|
+
profile = "black"
|
|
93
|
+
line_length = 100
|
|
94
|
+
|
|
95
|
+
[tool.ruff]
|
|
96
|
+
line-length = 100
|
|
97
|
+
target-version = "py39"
|
|
98
|
+
|
|
99
|
+
[tool.mypy]
|
|
100
|
+
python_version = "3.9"
|
|
101
|
+
strict = true
|
|
102
|
+
warn_return_any = true
|
|
103
|
+
warn_unused_ignores = true
|