cora / docs /README_ETYMOLOGY_API.md
tokgae's picture
Upload folder using huggingface_hub
38ab39c verified
# Etymology App Integration Guide
## Overview
`etymology_api.py` provides a unified endpoint for generating historical illustrations from etymological data.
## Endpoints
### 1. Generate Illustration
**POST** `/api/v1/generate_illustration`
Generate a historical illustration for an etymological entry.
**Request Body:**
```json
{
"word": "mercenaries",
"etymology_context": "From Latin 'mercenarius' meaning hired soldier, derived from 'merces' (wages, pay)",
"style": "historical_illustration"
}
```
**Response:**
```json
{
"success": true,
"image_url": "http://localhost:8000/archive_images/etym_mercenaries_a3f4.png",
"image_base64": "iVBORw0KGgoAAAANSUhEUgAA...",
"prompt_used": "Historical scene depicting Roman mercenaries...",
"tags": ["person", "armor", "weapon", "etymology:mercenaries"],
"source": "generated"
}
```
### 2. Search Archive
**GET** `/api/v1/search_archive?query=roman&limit=5`
Search the visual archive for relevant artifacts.
**Response:**
```json
{
"results": [
{
"url": "http://localhost:8000/archive_images/met_12345.jpg",
"tags": "roman,met_museum_open_access,armor",
"prompt": "Roman legionary armor",
"score": 0.23
}
]
}
```
### 3. Health Check
**GET** `/health`
Verify API status and component health.
## Integration Example (JavaScript)
```javascript
async function generateEtymologyIllustration(word, etymologyText) {
const response = await fetch('http://localhost:8000/api/v1/generate_illustration', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
word: word,
etymology_context: etymologyText,
style: 'historical_illustration'
})
});
const data = await response.json();
if (data.success) {
// Option 1: Use URL
const img = document.createElement('img');
img.src = data.image_url;
// Option 2: Use base64 for offline/embed
img.src = `data:image/png;base64,${data.image_base64}`;
return img;
} else {
console.error('Generation failed:', data.error);
return null;
}
}
```
## Deployment Notes
### Local Development
```bash
cd c:\Users\Administrador\cora
python etymology_api.py
```
API will be available at `http://localhost:8000`
### Production Considerations
1. **CORS**: Update `allow_origins` in `etymology_api.py` to your domain
2. **Rate Limiting**: Add rate limiting middleware for public deployments
3. **Authentication**: Add API key validation if needed
4. **Caching**: Consider caching generated images by etymology text hash
## Architecture
```
Etymology App (Frontend)
↓ HTTP POST /api/v1/generate_illustration
Etymology API (etymology_api.py)
CoraCurator (prompt refinement)
CoraEngine (image generation)
↓ (on 402 error)
CoraMemory (RAG fallback - serve museum artifacts)
Response (image URL + base64 + metadata)
```