Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,43 @@ This ensures that your application always has the required models available and

### Project Management Endpoints
- `POST /generate-project-status-report` - Generate project status report from OpenProject data
### Evaluate Projects Similarities

**POST** `/evaluate-projects-similarities`

**Request Body:**
```json
{
"project": {
"id": "YOUR_PORTFOLIO_PROJECT_ID",
"type": "portfolio" # should be portfolio
},
"openproject": {
"base_url": "https://your-openproject-instance.com",
"user_token": "YOUR_OPENPROJECT_API_KEY"
}
}
```

**Response Example:**
```json
{
"portfolio": "Portfolio Project Name",
"candidates": [
{
"name": "Candidate Project 1",
"score": 85.0,
"project_id": "123",
"reason": "Strong alignment with portfolio goals."
}
],
"text": "...LLM explanation..."
}
```

**Note:**
- The `project` object only requires an `id` field. The `type` field is no longer used.
- The `openproject` object must be provided with each request and contains the OpenProject instance URL and user API token.

## OpenAI API Compatibility

Expand Down
15 changes: 7 additions & 8 deletions config/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,27 @@

class Settings:
"""Application settings."""

# Logging configuration
LOG_LEVEL: str = os.getenv("LOG_LEVEL", "INFO")
LOG_FORMAT: Optional[str] = os.getenv("LOG_FORMAT", None)

# Ollama configuration
OLLAMA_URL: str = os.getenv("OLLAMA_URL", "http://ollama:11434")
OLLAMA_MODEL: str = os.getenv("OLLAMA_MODEL", "mistral:latest")
OLLAMA_MODEL: str = os.getenv("OLLAMA_MODEL", "gemma:2b")

# Model management
MODELS_TO_PULL: str = os.getenv("MODELS_TO_PULL", "mistral:latest")
REQUIRED_MODELS: list = os.getenv("REQUIRED_MODELS", "mistral:latest").split(",")

# Generation parameters
GENERATION_NUM_PREDICT: int = int(os.getenv("GENERATION_NUM_PREDICT", "1000"))
GENERATION_TEMPERATURE: float = float(os.getenv("GENERATION_TEMPERATURE", "0.7"))

# API configuration
API_HOST: str = os.getenv("API_HOST", "0.0.0.0")
API_PORT: int = int(os.getenv("API_PORT", "8000"))

# RAG Configuration
DOCUMENTS_PATH: str = os.getenv("DOCUMENTS_PATH", "documents")
VECTOR_STORE_PATH: str = os.getenv("VECTOR_STORE_PATH", "vector_store")
Expand All @@ -36,5 +36,4 @@ class Settings:
CHUNK_OVERLAP: int = int(os.getenv("CHUNK_OVERLAP", "100"))
MAX_RETRIEVED_DOCS: int = int(os.getenv("MAX_RETRIEVED_DOCS", "5"))


settings = Settings()
Loading