Yermek68 commited on
Commit
67f97e8
·
verified ·
1 Parent(s): 1f59af0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -41
app.py CHANGED
@@ -1,4 +1,7 @@
1
- import os, json, time, hashlib
 
 
 
2
  import gradio as gr
3
  from fastapi import FastAPI
4
  from fastapi.middleware.cors import CORSMiddleware
@@ -7,7 +10,12 @@ from langdetect import detect
7
  from datetime import datetime
8
 
9
  # ============ Загрузка ядра и проверка модулей ============
10
- MODULES = ["Eroha_PromptCore.md", "Eroha_Dashboard.md", "Eroha_AgentAPI_v1.1.md", "Eroha_MetricsCore_v1.0.md"]
 
 
 
 
 
11
  AVAILABLE_MODULES = [m for m in MODULES if os.path.exists(m)]
12
  MISSING_MODULES = [m for m in MODULES if m not in AVAILABLE_MODULES]
13
 
@@ -17,8 +25,10 @@ def loader_health():
17
  for mod in MODULES:
18
  status = "✅ OK" if mod in AVAILABLE_MODULES else "❌ Missing"
19
  table.append(f"| {mod} | {status} |")
 
20
  trace_id = hashlib.md5(str(time.time()).encode()).hexdigest()[:8]
21
  summary = "\n".join(table)
 
22
  return f"""
23
  ## 🔍 Eroha Loader — Health Check
24
  | Модуль | Статус |
@@ -34,6 +44,7 @@ trace_id: {trace_id}
34
 
35
  # ====== Инициализация модели ======
36
  summarizers = {}
 
37
  def get_summarizer(lang: str):
38
  if lang == "ru":
39
  model_name = "IlyaGusev/mbart_ru_sum_gazeta"
@@ -41,21 +52,27 @@ def get_summarizer(lang: str):
41
  model_name = "facebook/mbart-large-50-many-to-many-mmt"
42
  else:
43
  model_name = "facebook/bart-large-cnn"
 
44
  if model_name not in summarizers:
45
  summarizers[model_name] = pipeline("summarization", model=model_name)
 
46
  return summarizers[model_name]
47
 
48
  def summarize_text(text: str):
49
  if not text.strip():
50
  return "❌ Введите текст для анализа."
 
51
  try:
52
  lang = detect(text)
53
- except:
54
  lang = "en"
 
55
  model = get_summarizer(lang)
56
  result = model(text, max_length=160, min_length=40, do_sample=False)
57
  summary = result[0]["summary_text"].replace("▁", " ").strip()
 
58
  now = datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S")
 
59
  json_ld = {
60
  "@context": "https://schema.org",
61
  "@type": "NewsArticle",
@@ -64,6 +81,7 @@ def summarize_text(text: str):
64
  "inLanguage": lang,
65
  "publisher": {"@type": "Organization", "name": "Eroha AI Publisher"},
66
  }
 
67
  formatted = f"""
68
  # 🧠 Eroha Summarizer PRO v2.5 (AutoLang: {lang.upper()})
69
  **Дата:** {now}
@@ -76,41 +94,3 @@ def summarize_text(text: str):
76
  ## 🧩 Schema.org JSON-LD
77
  ```json
78
  {json.dumps(json_ld, ensure_ascii=False, indent=2)}
79
- TL;DR: {summary[:140]}{'...' if len(summary)>140 else ''}
80
- """
81
- return formatted
82
-
83
- ============ FastAPI API ============
84
-
85
- app = FastAPI(title="Eroha Summarizer PRO v2.5")
86
- app.add_middleware(
87
- CORSMiddleware,
88
- allow_origins=[""],
89
- allow_methods=[""],
90
- allow_headers=["*"]
91
- )
92
-
93
- @app.get("/")
94
- async def home():
95
- return {"status": "ok", "message": "Eroha Core PRO v2.5 active"}
96
-
97
- @app.post("/api/summarize")
98
- async def summarize_api(data: dict):
99
- return {"summary": summarize_text(data.get("text", ""))}
100
-
101
- @app.get("/api/core-checkup")
102
- async def core_checkup():
103
- return {"report": loader_health()}
104
-
105
- ============ Gradio Interface ============
106
-
107
- iface = gr.Interface(
108
- fn=summarize_text,
109
- inputs=gr.Textbox(lines=10, label="Введите текст для анализа"),
110
- outputs=gr.Markdown(label="Результат"),
111
- title="Eroha Summarizer PRO v2.5 — Publisher Edition",
112
- description="AI-инструмент для суммаризации, автоязыка (RU, EN, KZ, DE, ES, FR) и SEO-разметки (JSON-LD)"
113
- )
114
-
115
- if name == "main":
116
- iface.launch(server_name="0.0.0.0", server_port=7860)
 
1
+ import os
2
+ import json
3
+ import time
4
+ import hashlib
5
  import gradio as gr
6
  from fastapi import FastAPI
7
  from fastapi.middleware.cors import CORSMiddleware
 
10
  from datetime import datetime
11
 
12
  # ============ Загрузка ядра и проверка модулей ============
13
+ MODULES = [
14
+ "Eroha_PromptCore.md",
15
+ "Eroha_Dashboard.md",
16
+ "Eroha_AgentAPI_v1.1.md",
17
+ "Eroha_MetricsCore_v1.0.md"
18
+ ]
19
  AVAILABLE_MODULES = [m for m in MODULES if os.path.exists(m)]
20
  MISSING_MODULES = [m for m in MODULES if m not in AVAILABLE_MODULES]
21
 
 
25
  for mod in MODULES:
26
  status = "✅ OK" if mod in AVAILABLE_MODULES else "❌ Missing"
27
  table.append(f"| {mod} | {status} |")
28
+
29
  trace_id = hashlib.md5(str(time.time()).encode()).hexdigest()[:8]
30
  summary = "\n".join(table)
31
+
32
  return f"""
33
  ## 🔍 Eroha Loader — Health Check
34
  | Модуль | Статус |
 
44
 
45
  # ====== Инициализация модели ======
46
  summarizers = {}
47
+
48
  def get_summarizer(lang: str):
49
  if lang == "ru":
50
  model_name = "IlyaGusev/mbart_ru_sum_gazeta"
 
52
  model_name = "facebook/mbart-large-50-many-to-many-mmt"
53
  else:
54
  model_name = "facebook/bart-large-cnn"
55
+
56
  if model_name not in summarizers:
57
  summarizers[model_name] = pipeline("summarization", model=model_name)
58
+
59
  return summarizers[model_name]
60
 
61
  def summarize_text(text: str):
62
  if not text.strip():
63
  return "❌ Введите текст для анализа."
64
+
65
  try:
66
  lang = detect(text)
67
+ except Exception:
68
  lang = "en"
69
+
70
  model = get_summarizer(lang)
71
  result = model(text, max_length=160, min_length=40, do_sample=False)
72
  summary = result[0]["summary_text"].replace("▁", " ").strip()
73
+
74
  now = datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S")
75
+
76
  json_ld = {
77
  "@context": "https://schema.org",
78
  "@type": "NewsArticle",
 
81
  "inLanguage": lang,
82
  "publisher": {"@type": "Organization", "name": "Eroha AI Publisher"},
83
  }
84
+
85
  formatted = f"""
86
  # 🧠 Eroha Summarizer PRO v2.5 (AutoLang: {lang.upper()})
87
  **Дата:** {now}
 
94
  ## 🧩 Schema.org JSON-LD
95
  ```json
96
  {json.dumps(json_ld, ensure_ascii=False, indent=2)}