95 lines
2.5 KiB
Markdown
95 lines
2.5 KiB
Markdown
# Dexorder Knowledge Base
|
|
|
|
This directory contains global knowledge documents that are automatically loaded into the RAG system as platform-wide knowledge (user_id="0").
|
|
|
|
## Structure
|
|
|
|
- **platform/**: Platform architecture and capabilities
|
|
- **trading/**: Trading concepts and fundamentals
|
|
- **indicators/**: Indicator development and usage
|
|
- **strategies/**: Strategy development and patterns
|
|
|
|
## Document Format
|
|
|
|
Documents should be in Markdown format with:
|
|
- Clear headings for chunking
|
|
- Optional YAML frontmatter for tags
|
|
- Code examples where relevant
|
|
- Cross-references to other docs
|
|
|
|
### Example with Frontmatter
|
|
|
|
```markdown
|
|
---
|
|
tags: [trading, risk-management, position-sizing]
|
|
---
|
|
|
|
# Risk Management
|
|
|
|
Content here...
|
|
```
|
|
|
|
## How It Works
|
|
|
|
1. At gateway startup, the DocumentLoader scans this directory
|
|
2. Each markdown file is chunked by headers (max ~1000 tokens per chunk)
|
|
3. Chunks are embedded using the configured embedding service
|
|
4. Embeddings are stored in Qdrant with user_id="0" (global namespace)
|
|
5. Content hash tracking enables incremental updates
|
|
|
|
## Updating Documents
|
|
|
|
### During Development
|
|
- Edit markdown files
|
|
- Restart gateway or call reload endpoint: `POST /admin/reload-knowledge`
|
|
|
|
### In Production
|
|
- Update markdown files in git
|
|
- Deploy new version
|
|
- Gateway will detect changes and update vectors automatically
|
|
|
|
## RAG Integration
|
|
|
|
When users query the agent:
|
|
1. Their query is embedded
|
|
2. Qdrant searches both global (user_id="0") and user-specific vectors
|
|
3. Relevant chunks from these docs are included in context
|
|
4. LLM generates response with platform knowledge
|
|
|
|
## Adding New Documents
|
|
|
|
1. Create markdown file in appropriate subdirectory
|
|
2. Use clear section headers (##, ###) for automatic chunking
|
|
3. Include practical examples and code samples
|
|
4. Add tags in frontmatter if using complex categorization
|
|
5. Restart gateway or reload knowledge
|
|
|
|
## Best Practices
|
|
|
|
- **Keep chunks focused**: Each section should cover one topic
|
|
- **Use examples**: Code samples and practical examples help
|
|
- **Link concepts**: Reference other docs for deeper dives
|
|
- **Update regularly**: Keep knowledge current with platform changes
|
|
- **Test queries**: Verify RAG retrieves relevant chunks
|
|
|
|
## Maintenance
|
|
|
|
The DocumentLoader tracks:
|
|
- Content hashes for change detection
|
|
- Number of chunks per document
|
|
- Last update timestamps
|
|
|
|
Check logs for load statistics:
|
|
```
|
|
Knowledge documents loaded: { loaded: 5, updated: 2, skipped: 3 }
|
|
```
|
|
|
|
Monitor Qdrant collection stats:
|
|
```
|
|
GET /health
|
|
{
|
|
"qdrantVectors": 1234,
|
|
"qdrantIndexed": 1234
|
|
}
|
|
```
|