From b840cdfe685793e322322d2518f24282bf3e3731 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Mon, 17 Nov 2025 13:41:10 +0000 Subject: [PATCH] safva --- .perm_test_apache | 0 .perm_test_exec | 0 ai/__init__.py | 3 + ai/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 404 bytes ai/__pycache__/local_ai_api.cpython-311.pyc | Bin 0 -> 13948 bytes ai/local_ai_api.py | 282 ++++++++++++++++++ assets/pasted-20251117-131313-23a22e93.jpg | 106 +++++++ assets/pasted-20251117-132257-2301ccd9.png | Bin 0 -> 68480 bytes assets/vm-shot-2025-11-17T13-12-23-862Z.jpg | Bin 0 -> 27232 bytes assets/vm-shot-2025-11-17T13-12-42-202Z.jpg | Bin 0 -> 27232 bytes assets/vm-shot-2025-11-17T13-22-10-043Z.jpg | Bin 0 -> 27232 bytes config/__pycache__/__init__.cpython-311.pyc | Bin 159 -> 159 bytes config/__pycache__/settings.cpython-311.pyc | Bin 4210 -> 4210 bytes config/__pycache__/urls.cpython-311.pyc | Bin 1143 -> 1143 bytes config/__pycache__/wsgi.cpython-311.pyc | Bin 679 -> 679 bytes core/__pycache__/__init__.cpython-311.pyc | Bin 157 -> 157 bytes core/__pycache__/admin.cpython-311.pyc | Bin 777 -> 777 bytes core/__pycache__/apps.cpython-311.pyc | Bin 524 -> 524 bytes core/__pycache__/forms.cpython-311.pyc | Bin 847 -> 847 bytes core/__pycache__/models.cpython-311.pyc | Bin 1409 -> 1409 bytes core/__pycache__/urls.cpython-311.pyc | Bin 347 -> 445 bytes core/__pycache__/views.cpython-311.pyc | Bin 2006 -> 1575 bytes .../__pycache__/0001_initial.cpython-311.pyc | Bin 1660 -> 1660 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 168 -> 168 bytes core/templates/base.html | 16 + core/templates/core/article_detail.html | 14 + core/templates/core/index.html | 187 +++--------- core/urls.py | 5 +- core/views.py | 50 ++-- static/css/custom.css | 48 +++ staticfiles/css/custom.css | 63 ++-- 31 files changed, 571 insertions(+), 203 deletions(-) create mode 100644 .perm_test_apache create mode 100644 .perm_test_exec create mode 100644 ai/__init__.py create mode 100644 ai/__pycache__/__init__.cpython-311.pyc create mode 100644 ai/__pycache__/local_ai_api.cpython-311.pyc create mode 100644 ai/local_ai_api.py create mode 100644 assets/pasted-20251117-131313-23a22e93.jpg create mode 100644 assets/pasted-20251117-132257-2301ccd9.png create mode 100644 assets/vm-shot-2025-11-17T13-12-23-862Z.jpg create mode 100644 assets/vm-shot-2025-11-17T13-12-42-202Z.jpg create mode 100644 assets/vm-shot-2025-11-17T13-22-10-043Z.jpg create mode 100644 core/templates/base.html create mode 100644 core/templates/core/article_detail.html create mode 100644 static/css/custom.css diff --git a/.perm_test_apache b/.perm_test_apache new file mode 100644 index 0000000..e69de29 diff --git a/.perm_test_exec b/.perm_test_exec new file mode 100644 index 0000000..e69de29 diff --git a/ai/__init__.py b/ai/__init__.py new file mode 100644 index 0000000..37a7b09 --- /dev/null +++ b/ai/__init__.py @@ -0,0 +1,3 @@ +"""Helpers for interacting with the Flatlogic AI proxy from Django code.""" + +from .local_ai_api import LocalAIApi, create_response, request, decode_json_from_response # noqa: F401 diff --git a/ai/__pycache__/__init__.cpython-311.pyc b/ai/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8bcb2fbacced8a64c23d6a403697ca4fcbf18d9a GIT binary patch literal 404 zcma)(ze__g5XbX=w3XW8>=xX*yf^72LP5n+adGl3Atu*0^}Qq}d9?K(adQ>_0RNAU z@+QH_P3YFi1k~B%_}m@b_wL}H`~5ER_H?u>UVZ!s#jnLb$>zW(kBFlJ@rcJ|RK-PH zB}G!DMOw9rR)lzRjRxt%*#(pujKvdWu#gT6WlqQ`UI;hCZU*?gq^?v`!SHZ|wNc9z zo)}f((>aw>g_+`zeMWxYAZ@yriqUd78fww(F$2^AF<`Zl7MhNM`x>lk_BjL7X?UczE z%G_B^8RS&tga|1dA(>uncaAH?>k>{(&&$K<_R!-iiK6HYjn`=Wj&9cfa}%EN4X0ar Ad;kCd literal 0 HcmV?d00001 diff --git a/ai/__pycache__/local_ai_api.cpython-311.pyc b/ai/__pycache__/local_ai_api.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..93112e367c6762d2d5c5cbbc28c437b5ddadc7d7 GIT binary patch literal 13948 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 literal 0 HcmV?d00001 diff --git a/ai/local_ai_api.py b/ai/local_ai_api.py new file mode 100644 index 0000000..bc1af27 --- /dev/null +++ b/ai/local_ai_api.py @@ -0,0 +1,282 @@ +""" +LocalAIApi — lightweight Python client for the Flatlogic AI proxy. + +Usage (inside the Django workspace): + + from ai.local_ai_api import LocalAIApi + + response = LocalAIApi.create_response({ + "input": [ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": "Summarise this text in two sentences."}, + ], + "text": {"format": {"type": "json_object"}}, + }) + + if response.get("success"): + data = LocalAIApi.decode_json_from_response(response) + # ... + +The helper automatically injects the project UUID header and falls back to +reading executor/.env if environment variables are missing. +""" + +from __future__ import annotations + +import json +import os +import ssl +from typing import Any, Dict, Iterable, Optional +from urllib import error as urlerror +from urllib import request as urlrequest + +__all__ = [ + "LocalAIApi", + "create_response", + "request", + "decode_json_from_response", +] + + +_CONFIG_CACHE: Optional[Dict[str, Any]] = None + + +class LocalAIApi: + """Static helpers mirroring the PHP implementation.""" + + @staticmethod + def create_response(params: Dict[str, Any], options: Optional[Dict[str, Any]] = None) -> Dict[str, Any]: + return create_response(params, options or {}) + + @staticmethod + def request(path: Optional[str] = None, payload: Optional[Dict[str, Any]] = None, + options: Optional[Dict[str, Any]] = None) -> Dict[str, Any]: + return request(path, payload or {}, options or {}) + + @staticmethod + def decode_json_from_response(response: Dict[str, Any]) -> Optional[Dict[str, Any]]: + return decode_json_from_response(response) + + +def create_response(params: Dict[str, Any], options: Optional[Dict[str, Any]] = None) -> Dict[str, Any]: + """Signature compatible with the OpenAI Responses API.""" + options = options or {} + payload = dict(params) + + if not isinstance(payload.get("input"), list) or not payload["input"]: + return { + "success": False, + "error": "input_missing", + "message": 'Parameter "input" is required and must be a non-empty list.', + } + + cfg = _config() + if not payload.get("model"): + payload["model"] = cfg["default_model"] + + return request(options.get("path"), payload, options) + + +def request(path: Optional[str], payload: Dict[str, Any], options: Optional[Dict[str, Any]] = None) -> Dict[str, Any]: + """Perform a raw request to the AI proxy.""" + cfg = _config() + options = options or {} + + resolved_path = path or options.get("path") or cfg["responses_path"] + if not resolved_path: + return { + "success": False, + "error": "project_id_missing", + "message": "PROJECT_ID is not defined; cannot resolve AI proxy endpoint.", + } + + project_uuid = cfg["project_uuid"] + if not project_uuid: + return { + "success": False, + "error": "project_uuid_missing", + "message": "PROJECT_UUID is not defined; aborting AI request.", + } + + if "project_uuid" not in payload and project_uuid: + payload["project_uuid"] = project_uuid + + url = _build_url(resolved_path, cfg["base_url"]) + timeout = int(options.get("timeout", cfg["timeout"])) + verify_tls = options.get("verify_tls", cfg["verify_tls"]) + + headers: Dict[str, str] = { + "Content-Type": "application/json", + "Accept": "application/json", + cfg["project_header"]: project_uuid, + } + extra_headers = options.get("headers") + if isinstance(extra_headers, Iterable): + for header in extra_headers: + if isinstance(header, str) and ":" in header: + name, value = header.split(":", 1) + headers[name.strip()] = value.strip() + + body = json.dumps(payload, ensure_ascii=False).encode("utf-8") + req = urlrequest.Request(url, data=body, method="POST") + for name, value in headers.items(): + req.add_header(name, value) + + context = None + if not verify_tls: + context = ssl.create_default_context() + context.check_hostname = False + context.verify_mode = ssl.CERT_NONE + + try: + with urlrequest.urlopen(req, timeout=timeout, context=context) as resp: + status = resp.getcode() + response_body = resp.read().decode("utf-8", errors="replace") + except urlerror.HTTPError as exc: + status = exc.getcode() + response_body = exc.read().decode("utf-8", errors="replace") + except Exception as exc: # pylint: disable=broad-except + return { + "success": False, + "error": "request_failed", + "message": str(exc), + } + + decoded = None + if response_body: + try: + decoded = json.loads(response_body) + except json.JSONDecodeError: + decoded = None + + if 200 <= status < 300: + return { + "success": True, + "status": status, + "data": decoded if decoded is not None else response_body, + } + + error_message = "AI proxy request failed" + if isinstance(decoded, dict): + error_message = decoded.get("error") or decoded.get("message") or error_message + elif response_body: + error_message = response_body + + return { + "success": False, + "status": status, + "error": error_message, + "response": decoded if decoded is not None else response_body, + } + + +def decode_json_from_response(response: Dict[str, Any]) -> Optional[Dict[str, Any]]: + """Attempt to decode JSON emitted by the model (handles markdown fences).""" + text = _extract_text(response) + if text == "": + return None + + try: + decoded = json.loads(text) + if isinstance(decoded, dict): + return decoded + except json.JSONDecodeError: + pass + + stripped = text.strip() + if stripped.startswith("```json"): + stripped = stripped[7:] + if stripped.endswith("```"): + stripped = stripped[:-3] + stripped = stripped.strip() + if stripped and stripped != text: + try: + decoded = json.loads(stripped) + if isinstance(decoded, dict): + return decoded + except json.JSONDecodeError: + return None + return None + + +def _extract_text(response: Dict[str, Any]) -> str: + payload = response.get("data") if response.get("success") else response.get("response") + if isinstance(payload, dict): + output = payload.get("output") + if isinstance(output, list): + combined = "" + for item in output: + content = item.get("content") if isinstance(item, dict) else None + if isinstance(content, list): + for block in content: + if isinstance(block, dict) and block.get("type") == "output_text" and block.get("text"): + combined += str(block["text"]) + if combined: + return combined + choices = payload.get("choices") + if isinstance(choices, list) and choices: + message = choices[0].get("message") + if isinstance(message, dict) and message.get("content"): + return str(message["content"]) + if isinstance(payload, str): + return payload + return "" + + +def _config() -> Dict[str, Any]: + global _CONFIG_CACHE # noqa: PLW0603 + if _CONFIG_CACHE is not None: + return _CONFIG_CACHE + + _ensure_env_loaded() + + base_url = os.getenv("AI_PROXY_BASE_URL", "https://flatlogic.com") + project_id = os.getenv("PROJECT_ID") or None + responses_path = os.getenv("AI_RESPONSES_PATH") + if not responses_path and project_id: + responses_path = f"/projects/{project_id}/ai-request" + + _CONFIG_CACHE = { + "base_url": base_url, + "responses_path": responses_path, + "project_id": project_id, + "project_uuid": os.getenv("PROJECT_UUID"), + "project_header": os.getenv("AI_PROJECT_HEADER", "project-uuid"), + "default_model": os.getenv("AI_DEFAULT_MODEL", "gpt-5"), + "timeout": int(os.getenv("AI_TIMEOUT", "30")), + "verify_tls": os.getenv("AI_VERIFY_TLS", "true").lower() not in {"0", "false", "no"}, + } + return _CONFIG_CACHE + + +def _build_url(path: str, base_url: str) -> str: + trimmed = path.strip() + if trimmed.startswith("http://") or trimmed.startswith("https://"): + return trimmed + if trimmed.startswith("/"): + return f"{base_url}{trimmed}" + return f"{base_url}/{trimmed}" + + +def _ensure_env_loaded() -> None: + """Populate os.environ from executor/.env if variables are missing.""" + if os.getenv("PROJECT_UUID") and os.getenv("PROJECT_ID"): + return + + env_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".env")) + if not os.path.exists(env_path): + return + + try: + with open(env_path, "r", encoding="utf-8") as handle: + for line in handle: + stripped = line.strip() + if not stripped or stripped.startswith("#") or "=" not in stripped: + continue + key, value = stripped.split("=", 1) + key = key.strip() + value = value.strip().strip('\'"') + if key and not os.getenv(key): + os.environ[key] = value + except OSError: + pass diff --git a/assets/pasted-20251117-131313-23a22e93.jpg b/assets/pasted-20251117-131313-23a22e93.jpg new file mode 100644 index 0000000..392ef54 --- /dev/null +++ b/assets/pasted-20251117-131313-23a22e93.jpg @@ -0,0 +1,106 @@ + + + + + Page not found at /assets/vm-shot-2025-11-17T13-12-42-202Z.jpg + + + + +
+

Page not found (404)

+ + + + + + + + + + + +
Request Method:GET
Request URL:https://genz-laughs-7f8f.dev.flatlogic.app/assets/vm-shot-2025-11-17T13-12-42-202Z.jpg
+
+ +
+ +

+ Using the URLconf defined in config.urls, + Django tried these URL patterns, in this order: +

+
    + +
  1. + + + admin/ + + + +
  2. + +
  3. + + + + + + + + + [name='home'] + + +
  4. + +
  5. + + + + + + + + generate-joke/ + [name='generate_joke'] + + +
  6. + +
+

+ + The current path, assets/vm-shot-2025-11-17T13-12-42-202Z.jpg, + + didn’t match any of these. +

+ +
+ +
+

+ You’re seeing this error because you have DEBUG = True in + your Django settings file. Change that to False, and Django + will display a standard 404 page. +

+
+ + diff --git a/assets/pasted-20251117-132257-2301ccd9.png b/assets/pasted-20251117-132257-2301ccd9.png new file mode 100644 index 0000000000000000000000000000000000000000..63503426511ac9cc35c828ad0893a5f01b43df5b GIT binary patch literal 68480 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

0Xr0RPQTTYPF^bU-0{+y{(55J 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 bFcP&;8dkx%JFNR0`J=6&uU?^M6aN1I%Q)B~ literal 0 HcmV?d00001 diff --git a/assets/vm-shot-2025-11-17T13-12-23-862Z.jpg b/assets/vm-shot-2025-11-17T13-12-23-862Z.jpg new file mode 100644 index 0000000000000000000000000000000000000000..507630a981f5880651b3ecd695eac157de5cc5eb GIT binary patch literal 27232 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 l2$K^a-4&E&d= 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 l2$K^a-4&E&d= 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 l2$K^a-4&E&d= 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 delta 20 acmbQwIG>ScIWI340}vQ{e#)50GZ_Fd1qB`e diff --git a/config/__pycache__/settings.cpython-311.pyc b/config/__pycache__/settings.cpython-311.pyc index dadfaa7db630a06a9bc0da9edbc375273aefa0ed..35ac14937f33e895b95aacaf118de3ffbcf56864 100644 GIT binary patch delta 21 bcmeyQ@JWGZIWI340}yn{NM~;3NfQ77Lt_P5 delta 21 bcmeyQ@JWGZIWI340}wn|@;zfCPnrM#PVNU1 diff --git a/config/__pycache__/urls.cpython-311.pyc b/config/__pycache__/urls.cpython-311.pyc index 139db1071801d00bd7e1a167305bffd074d952f6..d714412d93ab5850dbd34cc8469662133f9347a2 100644 GIT binary patch delta 21 bcmey)@tuQbIWI340}yn{NM~;3$z}lnK$!(B delta 21 bcmey)@tuQbIWI340}vQ{e#+R$lg$DEL?H#( diff --git a/config/__pycache__/wsgi.cpython-311.pyc b/config/__pycache__/wsgi.cpython-311.pyc index 79ce690f602e05f6bfa8a8e253edcb377296b788..fdf81bfe41b76bb6991b1c365e9235ac0f859147 100644 GIT binary patch delta 21 bcmZ3^x}23~IWI340}yn{NM~;3nauty3u&dbZi00dn!(wQ51{xSgoFh2y` delta 21 bcmeBV>ty3u&dbZi00g(yzh!LX`O5?VI57qi diff --git a/core/__pycache__/apps.cpython-311.pyc b/core/__pycache__/apps.cpython-311.pyc index 6435d92a257f85ac41d6fd22a9e528c3da4a1ec5..82cb0a417798be8783788039b3ec250d4d803b2e 100644 GIT binary patch delta 20 ZcmeBS>0#kn&dbZi00dn!(wPf+m;fqb1JM8g delta 20 acmeBS>0#kn&dbZi00hRKpE4HmFaZE9J_LOL diff --git a/core/__pycache__/forms.cpython-311.pyc b/core/__pycache__/forms.cpython-311.pyc index f6e5c4e3024d0f534a8b93046d15a44a0c8eeba6..bbeff3772e78a8764207884e32c5b87d38e5058c 100644 GIT binary patch delta 21 bcmX@lcAkxAIWI340}yn{NM~;3ab^YpIlKg~ delta 21 bcmX@lcAkxAIWI340}!OEe9PF#J5FM|*OFmj6(IFzGLy8313jk?S(?GQiTH;ZD`-!}}1ZYT^8;}$55nO;< zY@`&CMS(<>E>gNw*nt!vo@eYCy*GaIXxjx)crWjD-qic4n+>d=V(F^l9yoB~LqJ?Y zfE%3pMnGK}FqaW9010PEx%p~6P=FVe-&iwS$awBA(=uF>=g**8m}_a3NY?j~_MGU( zkgOdADD4)8D7*wOx={}$2=hl8dI8>UZ`ec4Izn%JTD4@6cfGI`)l%WdLa!pts}2t0 z_4HaLi;7cr35qa&hNaTL>cG*SPI{S!N$TJ=Hq#^$&L9%KxbHR5X+}cP>eE{PW|cb% zBA)tqB1&plZylq$7L*V&gL3veK43rlFBTS<`C((UGddqz8LLcKWy&fumK!#*{OTsw54uU9%x+WVMb2E`&l&NLp~}Vk^+*QeDh?XDqF}yR)60 ztu0puQwlY?G`E-%s84QMUwY`ZheCQ^fevCJ5GXz5rsAG*>YJ^sS}l1y`}Xa;pZVs! zdGmcPH;I5Ayg6Y?J`iz@mp7_S>XK@>9(p{i zl5JvzoU-Z`Wt)L-TBMqU|J){9LB(&!s<38RaMj=q=78;?XZmXoOVRZFlP`Yx;5YT@ z#IO2Oy}P*5TU?1Mt6ja;(`%7hI{{lXmM;-P06duiEaUlVjdm^ahLy)MR&h#v8#2~# z8fR?Dmhi-5c|1qEQb#%*WmBwpN_cYIlD&VnKCMw!JJPt_uH2FR3$Ki-|HoSCD6d#Q zi*rYS?0AH3SM_9^+f}(ZH$%eNjtX^#-Tzy6sPnm6tOf0W6L;s`PibhFj2Nb|Wpmy( zET{;!P0!eBQX}w*Wt)z@LjuG0jJw3UQ8${QOIf8X$10-^iPIMKI1xu83<%qqxlbI& za7DnNNg1CvHbT#98!fs?DzUafnQMyU)AmWMx1bf)=z5D-9O9*H&ku!;Z1XrBgqB5u zAXc%-%~%!wJMS%*TqB^2wdajxfEqg3D{+H2ZEw?{8?dG@Gnn0Ia>Jur72`f@8)n0_ zy({Gu6Fm~=Ek;aE*4VHGW2HfOd>IpqVzQPX+F;Zj>6r>%;4ChTI5YA}`)1prCXO?v z4Yt11W>a7hh&2pBOcxHh2Jr|J>j`A+3e1W61V00Vqn^Lq%a@;Dd?R`bM_B@+e{njR zTZ*!GVGL4AadMDB#i@g(!_{bdAu7Bx(6zU<0Rr|X(hBLn1l#*?P(Yc&*PSmr50|^? z*KS?w_BE&MzD^zjMBIp4{xtF7##>_A~wbrEfY9 zItNS9HM5&v@8#F`)qVAOeq~?%L%($J`r(Cxb6vgE(@T+BVmSa_o`?&$WqJ)-NoovD z9{h7R=)>tI=YEp7IB(h&N8E60kSEi(lOiyYgQV}1jQoI-ut~;VW)@wFLxDoOXG0XoCAf;2Zk|7QuHzX593ilqPm literal 2006 zcmZ`(&2Q936d!wcz21)`&W4tJ#pJA?V%j1zOmzNm$ozG=l3ywe)Hb% z%?~3Zc?9FF3q=E*-j z479_0?hBiOCEO9YnTVF?30CU9NR#Y?c5QI}H@-|+=}nR529D9No${FX$C{LI!+SPU zn*tq6Z168R;jN4%Z9`N$QDj{EKl`$8?z7~_^8GZONIW6PmX+H~57!dvm~Wk5i3+CD z8de>{vutlw4NQWur#5X`Qyt%cda7VivA1p$-*d4?RSQ$Yc7kfFXw>UXyVcsLn!d~A zi}m`KTw=LPjzJxN)iztXW!zM6(hUc*i5n}|uPiRy(m!3ixv;WyYhaWLKH(DYNaRP^~=u`nh_pqn_KE-I{$i*}l4) zFFl<5w)(KzUg%5c(6R8~%x?K)w>;Y`&+e9Idgb@K67l%h2GSK{&;Ro>LVcS%fBB$#nRS^&g9(F)o$TzuW+`L zKD!4&B9oJ3Bu%z=8Z?g(M*ND?L<|=k&S;V)Xju_q*%G&*sdomAt>vr~Ksn8n_|o|M zZfPBi(nO=1MF&vBofDNaO4Twisve%7U0!$``60Z5tPnIz69)lD(vOH71syrU$$JUmQZNUkJ(yv!)Lsn7 zC)-!T1E<>8!qVZbx$oAyrQ^NQ@%B|dV@KRaWr9p`SMLI0QrruKXD>#g5^JhK%_kIq z6GQ-Hg?%+d6~uuS6Agt{j`4hGUll_OS`HK2tYXWiB+LJn;b#xxJV;Saf+#^zM&kpX z;(-hf{aXGw&g*&d0T_7If)GeQB?v-@a_wk_XsjL0m*{k7c!lU_XLyC^SZ8>J=tyUH tg~Lw3=Swuz8D1eOcZOGAQiKotXh4pqg%f@BZ?e_;m1}?d4^wpVzX0UP4AcMs diff --git a/core/migrations/__pycache__/0001_initial.cpython-311.pyc b/core/migrations/__pycache__/0001_initial.cpython-311.pyc index 64d8a5533a01aeb9823459fa0e2a5787563687ab..4dbfa9bc11c081394738863cc53fab545ab180fb 100644 GIT binary patch delta 21 bcmeyv^M{9LIWI340}yn{NM~;3DPRKtLInjy delta 21 bcmeyv^M{9LIWI340}$N&_cLQ7PXQYMPud4l diff --git a/core/migrations/__pycache__/__init__.cpython-311.pyc b/core/migrations/__pycache__/__init__.cpython-311.pyc index 58b1c14eb06fea9cfb9a0d59788218572a75b51c..466462e4c18ad7a9768457e85ca2509a1ee0c7a3 100644 GIT binary patch delta 20 acmZ3%xPp;qIWI340}yn{NM}yunF9bWhy;xQ delta 20 acmZ3%xPp;qIWI340}vQ{e#)50GY0@MWCb|@ diff --git a/core/templates/base.html b/core/templates/base.html new file mode 100644 index 0000000..47ef060 --- /dev/null +++ b/core/templates/base.html @@ -0,0 +1,16 @@ + + + + + + {% block title %}Jokes App{% endblock %} + + {% load static %} + + {% block head %}{% endblock %} + + + {% block content %}{% endblock %} + {% block scripts %}{% endblock %} + + \ No newline at end of file diff --git a/core/templates/core/article_detail.html b/core/templates/core/article_detail.html new file mode 100644 index 0000000..8820990 --- /dev/null +++ b/core/templates/core/article_detail.html @@ -0,0 +1,14 @@ +{% extends 'base.html' %} + +{% block title %}{{ article.title }}{% endblock %} + +{% block content %} +

+{% endblock %} diff --git a/core/templates/core/index.html b/core/templates/core/index.html index f4e4991..93bedd3 100644 --- a/core/templates/core/index.html +++ b/core/templates/core/index.html @@ -1,157 +1,40 @@ - - +{% extends "base.html" %} +{% load static %} - - - - {{ project_name }} - {% if project_description %} - - - - {% endif %} - {% if project_image_url %} - - - {% endif %} - - - - - - - -
-
-

Analyzing your requirements and generating your website…

-
- Loading… -
-

Appwizzy AI is collecting your requirements and applying the first changes.

-

This page will refresh automatically as the plan is implemented.

-

- Runtime: Django {{ django_version }} · Python {{ python_version }} — - UTC {{ current_time|date:"Y-m-d H:i:s" }} -

+
+
+
+
+
+

Why don't scientists trust atoms? Because they make up everything!

-
- Page updated: {{ current_time|date:"Y-m-d H:i:s" }} (UTC) -
-
- + +
+ +
+ + + +{% endblock %} - \ No newline at end of file +{% block scripts %} + +{% endblock %} \ No newline at end of file diff --git a/core/urls.py b/core/urls.py index 6299e3d..8550b74 100644 --- a/core/urls.py +++ b/core/urls.py @@ -1,7 +1,8 @@ from django.urls import path -from .views import home +from .views import home, generate_joke urlpatterns = [ path("", home, name="home"), -] + path("generate-joke/", generate_joke, name="generate_joke"), +] \ No newline at end of file diff --git a/core/views.py b/core/views.py index c1a6d45..0268ec2 100644 --- a/core/views.py +++ b/core/views.py @@ -1,37 +1,25 @@ -import os -import platform - -from django import get_version as django_version from django.shortcuts import render -from django.urls import reverse_lazy -from django.utils import timezone -from django.views.generic.edit import CreateView - -from .forms import TicketForm -from .models import Ticket - +from django.http import JsonResponse +from ai.local_ai_api import LocalAIApi +import time def home(request): - """Render the landing screen with loader and environment details.""" - host_name = request.get_host().lower() - agent_brand = "AppWizzy" if host_name == "appwizzy.com" else "Flatlogic" - now = timezone.now() + return render(request, "core/index.html", {'timestamp': int(time.time())}) - context = { - "project_name": "New Style", - "agent_brand": agent_brand, - "django_version": django_version(), - "python_version": platform.python_version(), - "current_time": now, - "host_name": host_name, - "project_description": os.getenv("PROJECT_DESCRIPTION", ""), - "project_image_url": os.getenv("PROJECT_IMAGE_URL", ""), - } - return render(request, "core/index.html", context) +def generate_joke(request): + response = LocalAIApi.create_response({ + "input": [ + {"role": "system", "content": "You are a witty comedian who specializes in Gen-Z humor."}, + {"role": "user", "content": "Tell me a short, funny joke."}, + ], + "text": {"format": {"type": "json_object"}}, + }) + if response.get("success"): + payload = LocalAIApi.decode_json_from_response(response) + ai_reply = payload or response.get("data") + joke = ai_reply.get("joke", "I'm sorry, I couldn't think of a joke right now. Try again!") + else: + joke = "I'm sorry, I couldn't think of a joke right now. Try again!" -class TicketCreateView(CreateView): - model = Ticket - form_class = TicketForm - template_name = "core/ticket_create.html" - success_url = reverse_lazy("home") + return JsonResponse({"joke": joke}) diff --git a/static/css/custom.css b/static/css/custom.css new file mode 100644 index 0000000..176bba9 --- /dev/null +++ b/static/css/custom.css @@ -0,0 +1,48 @@ +@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@700&family=Inter:wght@400;500&display=swap'); + +body { + background-color: #1a1a1a; + color: #f0f0f0; + font-family: 'Inter', sans-serif; +} + +.hero { + background: linear-gradient(135deg, #1a1a1a, #333333); + padding: 4rem 0; + text-align: center; +} + +.hero h1 { + font-family: 'Poppins', sans-serif; + font-weight: 700; + color: #00c7ff; +} + +.joke-card { + background-color: #2a2a2a; + border: 1px solid #444; + border-radius: 15px; + padding: 2rem; + text-align: center; +} + +.joke-text-style { + color: #FFFFFF; + font-size: 1.7rem; + font-weight: 700; + text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.9); +} + +.btn-primary { + background-color: #00c7ff; + border-color: #00c7ff; + font-weight: 500; + padding: 0.75rem 1.5rem; + border-radius: 30px; + transition: background-color 0.3s ease; +} + +.btn-primary:hover { + background-color: #00a3cc; + border-color: #00a3cc; +} diff --git a/staticfiles/css/custom.css b/staticfiles/css/custom.css index 108056f..176bba9 100644 --- a/staticfiles/css/custom.css +++ b/staticfiles/css/custom.css @@ -1,21 +1,48 @@ +@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@700&family=Inter:wght@400;500&display=swap'); -:root { - --bg-color-start: #6a11cb; - --bg-color-end: #2575fc; - --text-color: #ffffff; - --card-bg-color: rgba(255, 255, 255, 0.01); - --card-border-color: rgba(255, 255, 255, 0.1); -} body { - margin: 0; - font-family: 'Inter', sans-serif; - background: linear-gradient(45deg, var(--bg-color-start), var(--bg-color-end)); - color: var(--text-color); - display: flex; - justify-content: center; - align-items: center; - min-height: 100vh; - text-align: center; - overflow: hidden; - position: relative; + background-color: #1a1a1a; + color: #f0f0f0; + font-family: 'Inter', sans-serif; +} + +.hero { + background: linear-gradient(135deg, #1a1a1a, #333333); + padding: 4rem 0; + text-align: center; +} + +.hero h1 { + font-family: 'Poppins', sans-serif; + font-weight: 700; + color: #00c7ff; +} + +.joke-card { + background-color: #2a2a2a; + border: 1px solid #444; + border-radius: 15px; + padding: 2rem; + text-align: center; +} + +.joke-text-style { + color: #FFFFFF; + font-size: 1.7rem; + font-weight: 700; + text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.9); +} + +.btn-primary { + background-color: #00c7ff; + border-color: #00c7ff; + font-weight: 500; + padding: 0.75rem 1.5rem; + border-radius: 30px; + transition: background-color 0.3s ease; +} + +.btn-primary:hover { + background-color: #00a3cc; + border-color: #00a3cc; }

-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