Compare commits
2 Commits
08313eaa9b
...
af311720b6
| Author | SHA1 | Date | |
|---|---|---|---|
| af311720b6 | |||
| 9a95cdb107 |
@@ -13,6 +13,7 @@ HOST=0.0.0.0
|
|||||||
PORT=3080
|
PORT=3080
|
||||||
|
|
||||||
# Build informations (Synced with pyproject.toml via bootstrap)
|
# Build informations (Synced with pyproject.toml via bootstrap)
|
||||||
|
ALFRED_VERSION=
|
||||||
IMAGE_NAME=
|
IMAGE_NAME=
|
||||||
LIBRECHAT_VERSION=
|
LIBRECHAT_VERSION=
|
||||||
PYTHON_VERSION=
|
PYTHON_VERSION=
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ def extract_last_user_content(messages: list[dict[str, Any]]) -> str:
|
|||||||
@app.get("/health")
|
@app.get("/health")
|
||||||
async def health_check():
|
async def health_check():
|
||||||
"""Health check endpoint."""
|
"""Health check endpoint."""
|
||||||
return {"status": "healthy", "version": "0.2.0"} # TODO: SHOULD BE DYNAMIC
|
return {"status": "healthy", "version": f"v{settings.alfred_version}"}
|
||||||
|
|
||||||
|
|
||||||
@app.get("/v1/models")
|
@app.get("/v1/models")
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ class ProjectVersions(NamedTuple):
|
|||||||
|
|
||||||
librechat: str
|
librechat: str
|
||||||
rag: str
|
rag: str
|
||||||
|
alfred: str
|
||||||
|
|
||||||
|
|
||||||
def get_versions_from_toml() -> ProjectVersions:
|
def get_versions_from_toml() -> ProjectVersions:
|
||||||
@@ -42,6 +43,7 @@ def get_versions_from_toml() -> ProjectVersions:
|
|||||||
return ProjectVersions(
|
return ProjectVersions(
|
||||||
librechat=data["tool"]["alfred"]["settings"]["librechat_version"],
|
librechat=data["tool"]["alfred"]["settings"]["librechat_version"],
|
||||||
rag=data["tool"]["alfred"]["settings"]["rag_version"],
|
rag=data["tool"]["alfred"]["settings"]["rag_version"],
|
||||||
|
alfred=data["tool"]["poetry"]["version"],
|
||||||
)
|
)
|
||||||
except KeyError as e:
|
except KeyError as e:
|
||||||
raise KeyError(f"Error: Missing key {e} in pyproject.toml") from e
|
raise KeyError(f"Error: Missing key {e} in pyproject.toml") from e
|
||||||
@@ -66,6 +68,7 @@ class Settings(BaseSettings):
|
|||||||
data_storage: str = "data"
|
data_storage: str = "data"
|
||||||
librechat_version: str = Field(VERSIONS.librechat, description="Librechat version")
|
librechat_version: str = Field(VERSIONS.librechat, description="Librechat version")
|
||||||
rag_version: str = Field(VERSIONS.rag, description="RAG engine version")
|
rag_version: str = Field(VERSIONS.rag, description="RAG engine version")
|
||||||
|
alfred_version: str = Field(VERSIONS.alfred, description="Alfred version")
|
||||||
|
|
||||||
# --- CONTEXT SETTINGS ---
|
# --- CONTEXT SETTINGS ---
|
||||||
max_history_messages: int = 10
|
max_history_messages: int = 10
|
||||||
|
|||||||
2
poetry.lock
generated
2
poetry.lock
generated
@@ -1218,4 +1218,4 @@ files = [
|
|||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "==3.14.2"
|
python-versions = "==3.14.2"
|
||||||
content-hash = "7046b2edca4660e38f5f14ef0282854a4bb7892af5028c4af9e968f2c65590c5"
|
content-hash = "d5eb74123f289607e6d150b4deba352cd9651edd20a0f9f0ac97a58aa7066c15"
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ def bootstrap(): # noqa: PLR0912, PLR0915
|
|||||||
security_keys = data["tool"]["alfred"]["security"]
|
security_keys = data["tool"]["alfred"]["security"]
|
||||||
settings_keys = data["tool"]["alfred"]["settings"]
|
settings_keys = data["tool"]["alfred"]["settings"]
|
||||||
dependencies = data["tool"]["poetry"]["dependencies"]
|
dependencies = data["tool"]["poetry"]["dependencies"]
|
||||||
|
alfred_version = data["tool"]["poetry"]["version"]
|
||||||
|
|
||||||
# Normalize TOML keys to UPPER_CASE for .env format (done once)
|
# Normalize TOML keys to UPPER_CASE for .env format (done once)
|
||||||
security_keys_upper = {k.upper(): v for k, v in security_keys.items()}
|
security_keys_upper = {k.upper(): v for k, v in security_keys.items()}
|
||||||
@@ -144,6 +145,13 @@ def bootstrap(): # noqa: PLR0912, PLR0915
|
|||||||
else:
|
else:
|
||||||
new_lines.append(f"{key}={existing_env[key]}\n")
|
new_lines.append(f"{key}={existing_env[key]}\n")
|
||||||
print(f" ↻ Kept Python (short): {existing_env[key]}")
|
print(f" ↻ Kept Python (short): {existing_env[key]}")
|
||||||
|
elif key == "ALFRED_VERSION":
|
||||||
|
if existing_env.get(key) != alfred_version:
|
||||||
|
new_lines.append(f"{key}={alfred_version}\n")
|
||||||
|
print(f" ↻ Updated Alfred version: {existing_env.get(key, 'N/A')} → {alfred_version}")
|
||||||
|
else:
|
||||||
|
new_lines.append(f"{key}={alfred_version}\n")
|
||||||
|
print(f" ↻ Kept Alfred version: {alfred_version}")
|
||||||
# Keep other existing values
|
# Keep other existing values
|
||||||
else:
|
else:
|
||||||
new_lines.append(f"{key}={existing_env[key]}\n")
|
new_lines.append(f"{key}={existing_env[key]}\n")
|
||||||
@@ -163,6 +171,9 @@ def bootstrap(): # noqa: PLR0912, PLR0915
|
|||||||
elif key == "PYTHON_VERSION_SHORT":
|
elif key == "PYTHON_VERSION_SHORT":
|
||||||
new_lines.append(f"{key}={python_version_short}\n")
|
new_lines.append(f"{key}={python_version_short}\n")
|
||||||
print(f" + Python version (short): {python_version_short}")
|
print(f" + Python version (short): {python_version_short}")
|
||||||
|
elif key == "ALFRED_VERSION":
|
||||||
|
new_lines.append(f"{key}={alfred_version}\n")
|
||||||
|
print(f" + Alfred version: {alfred_version}")
|
||||||
else:
|
else:
|
||||||
new_lines.append(raw_line)
|
new_lines.append(raw_line)
|
||||||
else:
|
else:
|
||||||
@@ -217,6 +228,7 @@ def bootstrap(): # noqa: PLR0912, PLR0915
|
|||||||
env_make_path = base_dir / ".env.make"
|
env_make_path = base_dir / ".env.make"
|
||||||
with open(env_make_path, "w", encoding="utf-8") as f:
|
with open(env_make_path, "w", encoding="utf-8") as f:
|
||||||
f.write("# Auto-generated from pyproject.toml by bootstrap.py\n")
|
f.write("# Auto-generated from pyproject.toml by bootstrap.py\n")
|
||||||
|
f.write(f"export ALFRED_VERSION={alfred_version}\n")
|
||||||
f.write(f"export PYTHON_VERSION={python_version_full}\n")
|
f.write(f"export PYTHON_VERSION={python_version_full}\n")
|
||||||
f.write(f"export PYTHON_VERSION_SHORT={python_version_short}\n")
|
f.write(f"export PYTHON_VERSION_SHORT={python_version_short}\n")
|
||||||
f.write(f"export RUNNER={settings_keys['runner']}\n")
|
f.write(f"export RUNNER={settings_keys['runner']}\n")
|
||||||
|
|||||||
Reference in New Issue
Block a user