1
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Intelligence Layer
2
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
3
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
The intelligence layer adds capabilities that go beyond structural graph queries: semantic similarity search, community detection, natural language queries, and documentation generation. These features require an LLM provider or embedding model.
4
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
5
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
6
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
7
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Setup
8
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
9
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Install the intelligence extras:
10
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
11
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
12
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
pip install "navegador[intelligence]"
13
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
14
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
15
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Configure your LLM provider:
16
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
17
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
=== "OpenAI"
18
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
19
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
20
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
export NAVEGADOR_LLM_PROVIDER=openai
21
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
export OPENAI_API_KEY=sk-...
22
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
23
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
24
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
=== "Anthropic"
25
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
26
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
27
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
export NAVEGADOR_LLM_PROVIDER=anthropic
28
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
export ANTHROPIC_API_KEY=sk-ant-...
29
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
30
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
31
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
=== "Local (Ollama)"
32
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
33
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
34
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
export NAVEGADOR_LLM_PROVIDER=ollama
35
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
export NAVEGADOR_LLM_MODEL=llama3.2
36
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# no API key required; Ollama must be running on localhost:11434
37
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
38
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
39
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Or set via `navegador.toml`:
40
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
41
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```toml
42
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
[intelligence]
43
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
provider = "openai"
44
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
model = "text-embedding-3-small" # embedding model
45
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
llm_model = "gpt-4o-mini" # generation model
46
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
47
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
48
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
49
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
50
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Semantic search
51
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
52
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Standard `navegador search` matches on names and text. Semantic search matches on **meaning**: a query for "billing" finds code about "invoices", "subscriptions", and "charges" even when those words don't appear in the query.
53
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
54
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
55
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador search "handle payment failure" --semantic
56
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador search "retry with backoff" --semantic --limit 10
57
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador search "authentication middleware" --semantic --all
58
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
59
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
60
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
!!! note
61
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
First run after ingestion builds the embedding index. This may take a minute on large codebases. The index is cached in the database and updated incrementally on re-ingest.
62
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
63
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Combining semantic and text search
64
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
65
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
66
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# semantic search scoped to a domain
67
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador search "billing failure" --semantic --domain Payments
68
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
69
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# hybrid: semantic ranking with text pre-filter
70
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador search "rate limit" --semantic --all
71
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
72
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
73
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Python API
74
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
75
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```python
76
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
from navegador.graph import GraphStore
77
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
from navegador.intelligence import SemanticSearch
78
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
79
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
store = GraphStore.sqlite(".navegador/navegador.db")
80
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
search = SemanticSearch(store)
81
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
82
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
results = search.query("handle payment failure", limit=10)
83
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
for node in results:
84
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
print(f"[{node.label}] {node.name} score={node.score:.3f}")
85
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
86
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
87
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
88
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
89
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Community detection
90
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
91
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Community detection groups nodes in the graph into clusters based on structural connectivity. Clusters typically correspond to logical modules or subsystems, even when the code doesn't explicitly organize itself that way.
92
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
93
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
94
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador intelligence communities
95
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador intelligence communities --algorithm louvain
96
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador intelligence communities --format json
97
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
98
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
99
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Algorithms
100
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
101
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Algorithm | Best for |
102
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|---|---|
103
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `louvain` (default) | Large codebases; fast and produces stable clusters |
104
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `leiden` | Higher modularity; slower |
105
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `label-propagation` | Very large graphs |
106
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
107
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Output
108
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
109
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
110
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Detected 6 communities:
111
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
112
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Community 1 (47 nodes) — suggested name: Auth
113
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Core: AuthService, validate_token, JWTManager
114
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Files: src/auth/ (12 files)
115
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
116
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Community 2 (38 nodes) — suggested name: Payments
117
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Core: PaymentProcessor, charge_card, StripeClient
118
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Files: src/payments/ (9 files)
119
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
120
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Community 3 (22 nodes) — suggested name: Orders
121
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Core: OrderService, create_order, OrderRepository
122
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Files: src/orders/ (6 files)
123
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
...
124
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
125
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
126
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Suggested names are generated by the LLM by inspecting the core nodes of each cluster.
127
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
128
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Persisting communities
129
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
130
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
131
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador intelligence communities --save
132
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
133
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
134
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
This writes `Community` nodes and `MEMBER_OF` edges into the graph, making communities queryable:
135
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
136
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
137
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador query "MATCH (f:Function)-[:MEMBER_OF]->(c:Community) WHERE c.name = 'Payments' RETURN f.name, f.file"
138
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
139
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
140
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
141
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
142
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Natural language queries
143
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
144
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
`navegador ask` lets you query the graph in plain English. The LLM translates your question into Cypher, executes it, and returns a natural language answer with citations.
145
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
146
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
147
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador ask "Which functions call process_payment?"
148
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador ask "What rules govern the Payments domain?"
149
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador ask "Show me all classes that inherit from BaseProcessor"
150
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador ask "What decisions have been made about the database?"
151
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
152
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
153
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### How it works
154
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
155
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1. Your question is embedded and matched against graph schema context
156
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2. The LLM generates a Cypher query based on the question and schema
157
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
3. Navegador executes the query against the graph
158
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
4. The LLM formats the results as a natural language answer with source references
159
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
160
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Safety
161
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
162
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Generated queries are run in read-only mode. Write operations (`CREATE`, `MERGE`, `DELETE`, `SET`) in generated queries are blocked.
163
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
164
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
165
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# show the generated Cypher without executing
166
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador ask "Which functions have no tests?" --show-query
167
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
168
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# execute and show both Cypher and answer
169
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador ask "Which functions have no tests?" --verbose
170
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
171
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
172
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
173
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
174
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Documentation generation
175
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
176
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
`navegador docgen` generates or improves docstrings for undocumented functions and classes, using graph context to produce accurate, context-aware descriptions.
177
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
178
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
179
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# generate docs for all undocumented functions in a file
180
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador docgen src/payments/processor.py
181
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
182
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# generate docs for a specific function
183
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador docgen --target process_payment
184
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
185
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# dry run: show what would be generated without writing
186
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador docgen src/payments/processor.py --dry-run
187
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
188
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# write directly to source files
189
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador docgen src/payments/processor.py --write
190
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
191
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
192
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### What it includes
193
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
194
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
The generated docstring draws on:
195
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
196
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- The function's call graph (what it calls and what calls it)
197
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Related concepts and rules from the knowledge layer
198
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- The class or module context
199
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Existing docstrings in the same file as style examples
200
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
201
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Output
202
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
203
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```python
204
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
def process_payment(order_id: str, amount: Decimal, idempotency_key: str) -> PaymentResult:
205
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
"""Process a payment for an order.
206
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
207
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Charges the card on file for the given order using the Stripe payment
208
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
processor. Requires an idempotency key to prevent double-charging on
209
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
client retries (see: RequireIdempotencyKey rule, UseStripeForPayments
210
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
decision).
211
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
212
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Args:
213
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
order_id: The unique identifier of the order to charge.
214
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
amount: The amount to charge in the order's currency.
215
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
idempotency_key: Client-supplied key for idempotent retries.
216
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
217
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Returns:
218
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
PaymentResult with charge_id and status.
219
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
220
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Raises:
221
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
PaymentError: If the charge fails or the card is declined.
222
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
DuplicatePaymentError: If a payment with this idempotency_key
223
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
already exists with a different amount.
224
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
"""
225
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
226
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
227
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Batch generation
228
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
229
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
230
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# generate docs for all undocumented functions in the repo
231
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador docgen ./src --write --format google
232
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
233
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# formats: google (default), numpy, sphinx
234
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
235
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
236
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
!!! warning
237
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
`--write` modifies source files in place. Review changes with `--dry-run` first and commit before running with `--write` so you can diff and revert.
238
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
239
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
240
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
241
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Python API
242
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
243
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```python
244
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
from navegador.graph import GraphStore
245
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
from navegador.intelligence import SemanticSearch, CommunityDetector, NaturalLanguageQuery, DocGenerator
246
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
247
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
store = GraphStore.sqlite(".navegador/navegador.db")
248
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
249
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# semantic search
250
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
search = SemanticSearch(store)
251
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
results = search.query("retry logic", limit=5)
252
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
253
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# community detection
254
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
detector = CommunityDetector(store)
255
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
communities = detector.detect(algorithm="louvain", save=True)
256
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
257
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# natural language query
258
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
nlq = NaturalLanguageQuery(store)
259
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
answer = nlq.ask("What functions call process_payment?")
260
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
print(answer.text)
261
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
print(answer.cypher) # generated Cypher
262
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
263
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# doc generation
264
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
docgen = DocGenerator(store)
265
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
draft = docgen.generate_for_function("process_payment")
266
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
print(draft.docstring)
267
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
268
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!