Janady07 commited on
Commit
b5f4a61
·
verified ·
1 Parent(s): 6ffbb51

Upload folder using huggingface_hub

Browse files
Files changed (3) hide show
  1. Dockerfile +4 -15
  2. README.md +1 -5
  3. brain.py +40 -0
Dockerfile CHANGED
@@ -1,18 +1,7 @@
1
  FROM python:3.11-slim
2
-
3
- RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl && rm -rf /var/lib/apt/lists/*
4
-
5
- RUN useradd -m -u 1000 megamind
6
  WORKDIR /app
7
- RUN mkdir -p /app/data && chown -R megamind:megamind /app
8
-
9
- COPY brain /app/brain
10
- COPY start.sh /app/start.sh
11
- RUN chmod +x /app/brain /app/start.sh
12
-
13
- USER megamind
14
  EXPOSE 7860
15
-
16
- HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 CMD curl -sf http://localhost:7860/health || exit 1
17
-
18
- CMD ["/app/start.sh"]
 
1
  FROM python:3.11-slim
2
+ RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
 
 
 
3
  WORKDIR /app
4
+ COPY brain.py /app/
 
 
 
 
 
 
5
  EXPOSE 7860
6
+ HEALTHCHECK --interval=30s --timeout=10s CMD curl -sf http://localhost:7860/health || exit 1
7
+ CMD ["python3", "/app/brain.py"]
 
 
README.md CHANGED
@@ -1,11 +1,7 @@
1
  ---
2
  title: MEGAMIND CORTEX
3
  emoji: 🧠
4
- colorFrom: purple
5
- colorTo: blue
6
  sdk: docker
7
- pinned: false
8
  ---
9
-
10
  # MEGAMIND CORTEX
11
- Specialty: cognition
 
1
  ---
2
  title: MEGAMIND CORTEX
3
  emoji: 🧠
 
 
4
  sdk: docker
 
5
  ---
 
6
  # MEGAMIND CORTEX
7
+ Federation Node
brain.py ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ import os, json, sqlite3, hashlib, time
3
+ from http.server import HTTPServer, BaseHTTPRequestHandler
4
+ from urllib.parse import urlparse
5
+ PORT = int(os.environ.get('PORT', 7860))
6
+ DATA_DIR, NODE_ID = './data', os.environ.get('SPACE_ID', 'hf-brain')
7
+ db, stats = None, {'tensors': 0, 'patterns': 0, 'queries': 0, 'start': time.time()}
8
+ def init_db():
9
+ global db
10
+ os.makedirs(DATA_DIR, exist_ok=True)
11
+ db = sqlite3.connect(f'{DATA_DIR}/brain.db', check_same_thread=False)
12
+ db.execute('CREATE TABLE IF NOT EXISTS chunks (id INTEGER PRIMARY KEY, hash TEXT UNIQUE, content TEXT, ts REAL)')
13
+ db.execute('CREATE TABLE IF NOT EXISTS tensors (id INTEGER PRIMARY KEY, name TEXT, source TEXT, meta TEXT, ts REAL)')
14
+ db.commit()
15
+ stats['patterns'] = db.execute('SELECT COUNT(*) FROM chunks').fetchone()[0]
16
+ stats['tensors'] = db.execute('SELECT COUNT(*) FROM tensors').fetchone()[0]
17
+ class Handler(BaseHTTPRequestHandler):
18
+ def log_message(self, *a): pass
19
+ def do_GET(self):
20
+ p = urlparse(self.path).path
21
+ if p == '/health': self.json({'status': 'healthy'})
22
+ elif p == '/status': self.json({'node': NODE_ID, 'status': 'online', 'tensors_learned': stats['tensors'], 'patterns_learned': stats['patterns']})
23
+ else: self.json({'name': 'MEGAMIND', 'node': NODE_ID})
24
+ def do_POST(self):
25
+ body = self.rfile.read(int(self.headers.get('Content-Length', 0))).decode()
26
+ data = json.loads(body) if body else {}
27
+ p = urlparse(self.path).path
28
+ if p == '/learn':
29
+ c = data.get('content', '')[:10000]
30
+ h = hashlib.sha256(c.encode()).hexdigest()[:16]
31
+ db.execute('INSERT OR IGNORE INTO chunks (hash, content, ts) VALUES (?, ?, ?)', (h, c, time.time()))
32
+ db.commit(); stats['patterns'] += 1
33
+ self.json({'status': 'learned'})
34
+ else: self.json({})
35
+ def json(self, d):
36
+ self.send_response(200); self.send_header('Content-Type', 'application/json'); self.end_headers()
37
+ self.wfile.write(json.dumps(d).encode())
38
+ if __name__ == '__main__':
39
+ print(f'MEGAMIND Brain [{NODE_ID}]'); init_db()
40
+ HTTPServer(('0.0.0.0', PORT), Handler).serve_forever()