Add version
This commit is contained in:
@@ -61,4 +61,7 @@ LENGTH_DEFINITIONS = {
|
||||
"3": {"label": "Novella", "words": "20,000 - 40,000", "chapters": 15, "depth": 2},
|
||||
"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"
|
||||
@@ -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}.")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user