allma / app.py
pakito312
update
4456a38
#!/usr/bin/env python3
"""
Serveur HTTP minimal pour DeepSeek-Coder
"""
import http.server
import socketserver
import json
import subprocess
import threading
import time
# Démarrer Ollama
def start_ollama():
subprocess.run(["ollama", "serve"])
# Lancer Ollama en thread
threading.Thread(target=start_ollama, daemon=True).start()
time.sleep(30)
# Télécharger le modèle
print("Téléchargement du modèle...")
subprocess.run(["ollama", "pull", "deepseek-coder:1.3b"], capture_output=True)
# HTML simple
HTML = open("index.html").read() if os.path.exists("index.html") else "<h1>DeepSeek-Coder 1.3B</h1>"
class OllamaHandler(http.server.SimpleHTTPRequestHandler):
def do_GET(self):
if self.path == "/":
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
self.wfile.write(HTML.encode())
else:
super().do_GET()
def do_POST(self):
if self.path == "/generate":
content_length = int(self.headers['Content-Length'])
post_data = self.rfile.read(content_length)
data = json.loads(post_data)
# Appeler Ollama
result = subprocess.run(
["ollama", "run", "deepseek-coder:1.3b", data.get("prompt", "")],
capture_output=True,
text=True
)
self.send_response(200)
self.send_header("Content-type", "application/json")
self.end_headers()
self.wfile.write(json.dumps({"response": result.stdout}).encode())
# Démarrer le serveur
if __name__ == "__main__":
PORT = 7860
with socketserver.TCPServer(("", PORT), OllamaHandler) as httpd:
print(f"Serveur démarré sur le port {PORT}")
httpd.serve_forever()