Changes
Build and Push Docker Images / build (push) Successful in 37s

This commit is contained in:
2026-05-04 21:02:35 +03:00
parent 34625ae242
commit fa1ef23c02
87 changed files with 3151 additions and 522 deletions
+116
View File
@@ -0,0 +1,116 @@
# MyAi RAG split cleanup
## Public `api`
The existing `api` project is now only the public gateway for the existing frontend.
It keeps:
- contact API
- file download API
- Google/config APIs
- health API
- `api/rag/*` proxy endpoints
It no longer contains local RAG processing code. The removed responsibilities are:
- PDF extraction
- chunking
- embeddings
- vector storage
- OpenAI/Ollama calls
- job text extraction
- CV matching business logic
`api/Controllers/RagController.cs` is intentionally kept. It proxies the current frontend calls:
- `POST /api/rag/cv` -> `cv-matcher-api /api/cv/upload`
- `POST /api/rag/match-job` -> `cv-matcher-api /api/cv/match-job`
Required public API config:
```json
"CvMatcherApi": {
"BaseUrl": "http://cv-matcher-api:8080",
"InternalApiKey": "change-this-internal-key"
}
```
## `cv-matcher-api`
Business API for CV/job workflows.
Main endpoints:
- `POST /api/cv/upload`
- `POST /api/cv/match-job`
- `POST /api/cv/find-jobs`
- `GET /health`
- Swagger: `/swagger`
Responsibilities:
- CV matcher business logic
- job URL/text extraction
- final LLM scoring
- result persistence
- email sending
- calls `rag-api` for generic semantic indexing/search
## `rag-api`
Generic semantic search API.
Main endpoints:
- `POST /api/rag/documents`
- `POST /api/rag/documents/json`
- `POST /api/rag/search`
- `GET /api/rag/documents/{id}`
- `GET /health`
- Swagger: `/swagger`
Responsibilities:
- generic document indexing
- automatic document type classification when type is missing
- PDF/text extraction
- chunking
- embedding creation
- embedding and chat completion cache
- semantic search over generic documents
## Logging and Swagger
All three APIs now have:
- Serilog startup logging
- Serilog request logging
- structured JSON console logs
- health endpoint
- Swagger/OpenAPI support
Swagger is enabled by default and can be disabled per service with:
```json
"Swagger": {
"Enabled": false
}
```
## Internal API security
Both internal APIs support API-key protection:
```json
"InternalApi": {
"RequireApiKey": true,
"ApiKey": "change-this-internal-key"
}
```
Requests must include:
```http
X-Internal-Api-Key: change-this-internal-key
```