Add version

This commit is contained in:
2026-02-20 09:55:21 -05:00
parent 442406628a
commit 5e0def99c1
5 changed files with 55 additions and 5 deletions

View File

@@ -62,3 +62,6 @@ LENGTH_DEFINITIONS = {
"4": {"label": "Novel", "words": "60,000 - 80,000", "chapters": 30, "depth": 3},
"5": {"label": "Epic", "words": "100,000+", "chapters": 50, "depth": 4}
}
# --- SYSTEM ---
VERSION = "1.1.0"

View File

@@ -80,7 +80,9 @@ def get_optimal_model(base_type="pro"):
if "latest" in n: return 50
return 100
return sorted(candidates, key=score, reverse=True)[0]
except: return f"models/gemini-1.5-{base_type}"
except Exception as e:
utils.log("SYSTEM", f"⚠️ Error finding optimal model: {e}")
return f"models/gemini-1.5-{base_type}"
def get_default_models():
return {
@@ -116,7 +118,12 @@ def select_best_models(force_refresh=False):
try:
utils.log("SYSTEM", "Refreshing AI model list from API...")
models = [m.name for m in genai.list_models() if 'generateContent' in m.supported_generation_methods and 'gemini' in m.name.lower()]
all_models = list(genai.list_models())
raw_model_names = [m.name for m in all_models]
utils.log("SYSTEM", f"Found {len(all_models)} raw models from Google API.")
models = [m.name for m in all_models if 'generateContent' in m.supported_generation_methods and 'gemini' in m.name.lower()]
utils.log("SYSTEM", f"Identified {len(models)} compatible Gemini models: {models}")
bootstrapper = get_optimal_model("flash")
utils.log("SYSTEM", f"Bootstrapping model selection with: {bootstrapper}")
@@ -160,7 +167,12 @@ def select_best_models(force_refresh=False):
if not os.path.exists(config.DATA_DIR): os.makedirs(config.DATA_DIR)
with open(cache_path, 'w') as f:
json.dump({"timestamp": int(time.time()), "models": selection, "available_at_time": models}, f, indent=2)
json.dump({
"timestamp": int(time.time()),
"models": selection,
"available_at_time": models,
"raw_models": raw_model_names
}, f, indent=2)
return selection
except Exception as e:
utils.log("SYSTEM", f"AI Model Selection failed: {e}.")

View File

@@ -37,6 +37,10 @@ login_manager.init_app(app)
def load_user(user_id):
return db.session.get(User, int(user_id))
@app.context_processor
def inject_globals():
return dict(app_version=config.VERSION)
# --- SETUP ---
with app.app_context():
db.create_all()

View File

@@ -33,7 +33,7 @@
{% endif %}
<nav class="navbar navbar-expand-lg navbar-dark bg-dark mb-4">
<div class="container">
<a class="navbar-brand" href="/"><i class="fas fa-book-open me-2"></i>BookApp AI</a>
<a class="navbar-brand" href="/"><i class="fas fa-book-open me-2"></i>BookApp AI <small class="text-muted fs-6 ms-1">v{{ app_version }}</small></a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>

View File

@@ -16,6 +16,13 @@
</div>
</div>
{% if cache.error %}
<div class="alert alert-danger shadow-sm">
<h5 class="alert-heading"><i class="fas fa-exclamation-triangle me-2"></i>Last Scan Error</h5>
<p class="mb-0">{{ cache.error }}</p>
</div>
{% endif %}
<div class="card shadow-sm mb-4">
<div class="card-header bg-light">
<h5 class="mb-0"><i class="fas fa-robot me-2"></i>AI Model Selection</h5>
@@ -102,6 +109,30 @@
</div>
</div>
<!-- Raw API Output -->
<div class="card shadow-sm mb-4">
<div class="card-header bg-light d-flex justify-content-between align-items-center" style="cursor: pointer;" data-bs-toggle="collapse" data-bs-target="#rawOutput">
<h5 class="mb-0"><i class="fas fa-terminal me-2"></i>Raw API Output</h5>
<span class="badge bg-secondary">Click to Toggle</span>
</div>
<div id="rawOutput" class="collapse">
<div class="card-body bg-dark text-light font-monospace">
<p class="text-muted mb-2"># Full list of models returned by google.generativeai.list_models():</p>
<ul class="list-unstyled mb-0" style="column-count: 2;">
{% if cache.raw_models %}
{% for m in cache.raw_models %}
<li>
<span class="{{ 'text-success' if 'gemini' in m else 'text-muted' }}">{{ m }}</span>
</li>
{% endfor %}
{% else %}
<li class="text-muted">No raw data available. Run "Refresh & Optimize".</li>
{% endif %}
</ul>
</div>
</div>
</div>
<!-- Cache Info -->
<div class="card shadow-sm">
<div class="card-header bg-light">