Spaces:
Sleeping
Sleeping
| #!/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() |