fix cli
This commit is contained in:
108
TOML_MIGRATION.md
Normal file
108
TOML_MIGRATION.md
Normal file
@ -0,0 +1,108 @@
|
||||
# TOML Configuration Migration Guide
|
||||
|
||||
## Overview
|
||||
|
||||
The ai.gpt Rust implementation (`aigpt-rs`) now uses TOML format for configuration instead of JSON. This provides better readability and is more idiomatic for Rust applications.
|
||||
|
||||
## Configuration Location
|
||||
|
||||
The configuration file is stored at:
|
||||
- **macOS**: `~/Library/Application Support/syui/ai/gpt/config.toml`
|
||||
- **Linux**: `~/.config/syui/ai/gpt/config.toml`
|
||||
- **Windows**: `%APPDATA%\syui\ai\gpt\config.toml`
|
||||
|
||||
## Automatic Migration
|
||||
|
||||
When you run the Rust implementation for the first time, it will automatically:
|
||||
|
||||
1. Check if `config.toml` exists
|
||||
2. If not, look for `config.json` in various locations:
|
||||
- `../config.json` (relative to aigpt-rs directory)
|
||||
- `config.json` (current directory)
|
||||
- `gpt/config.json` (from project root)
|
||||
- `/Users/syui/ai/ai/gpt/config.json` (absolute path)
|
||||
3. If found, automatically convert the JSON to TOML format
|
||||
4. Save the converted configuration to the appropriate location
|
||||
|
||||
## TOML Configuration Structure
|
||||
|
||||
```toml
|
||||
# Default AI provider
|
||||
default_provider = "openai"
|
||||
|
||||
# Provider configurations
|
||||
[providers.openai]
|
||||
default_model = "gpt-4o-mini"
|
||||
api_key = "your-api-key-here" # Optional, can use OPENAI_API_KEY env var
|
||||
system_prompt = """
|
||||
Multi-line system prompt
|
||||
goes here
|
||||
"""
|
||||
|
||||
[providers.ollama]
|
||||
default_model = "qwen3"
|
||||
host = "http://127.0.0.1:11434"
|
||||
|
||||
# AT Protocol configuration (optional)
|
||||
[atproto]
|
||||
host = "https://bsky.social"
|
||||
handle = "your-handle.bsky.social" # Optional
|
||||
password = "your-app-password" # Optional
|
||||
|
||||
# MCP (Model Context Protocol) configuration
|
||||
[mcp]
|
||||
enabled = true
|
||||
auto_detect = true
|
||||
|
||||
# MCP Server definitions
|
||||
[mcp.servers.ai_gpt]
|
||||
base_url = "http://localhost:8001"
|
||||
name = "ai.gpt MCP Server"
|
||||
timeout = 10.0
|
||||
|
||||
# MCP endpoints
|
||||
[mcp.servers.ai_gpt.endpoints]
|
||||
get_memories = "/get_memories"
|
||||
search_memories = "/search_memories"
|
||||
# ... other endpoints ...
|
||||
```
|
||||
|
||||
## Manual Migration
|
||||
|
||||
If automatic migration doesn't work, you can manually convert your `config.json`:
|
||||
|
||||
1. Copy the example configuration from `gpt/config.toml.example`
|
||||
2. Fill in your specific values from `config.json`
|
||||
3. Save it to the configuration location mentioned above
|
||||
|
||||
## Testing Configuration
|
||||
|
||||
To test if your configuration is working:
|
||||
|
||||
```bash
|
||||
cd gpt/aigpt-rs
|
||||
cargo run --bin test-config
|
||||
```
|
||||
|
||||
This will show:
|
||||
- Loaded configuration values
|
||||
- Available providers
|
||||
- MCP and ATProto settings
|
||||
- Configuration file path
|
||||
|
||||
## Differences from JSON
|
||||
|
||||
Key differences in TOML format:
|
||||
- Multi-line strings use triple quotes (`"""`)
|
||||
- Comments start with `#`
|
||||
- Tables (objects) use `[table.name]` syntax
|
||||
- Arrays of tables use `[[array.name]]` syntax
|
||||
- More readable for configuration files
|
||||
|
||||
## Backward Compatibility
|
||||
|
||||
The Python implementation still uses JSON format. Both implementations can coexist:
|
||||
- Python: Uses `config.json`
|
||||
- Rust: Uses `config.toml` (with automatic migration from JSON)
|
||||
|
||||
The Rust implementation will only perform the migration once. After `config.toml` is created, it will use that file exclusively.
|
Reference in New Issue
Block a user