File size: 1,241 Bytes
ba0e4d5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import os
from flask import Flask, request, Response
import requests

app = Flask(__name__)

# Pega a chave que você vai definir nas configurações do Hugging Face
API_KEY = os.environ.get("MY_SECRET_TOKEN", "chave-padrao-muito-segura")
# O Ollama agora vai rodar internamente na porta 11434
OLLAMA_URL = "http://127.0.0.1:11434"

@app.route('/<path:path>', methods=['GET', 'POST', 'PUT', 'DELETE'])
def proxy(path):
    # Verifica se a chave no cabeçalho é igual à sua chave secreta
    auth_header = request.headers.get("Authorization")
    if auth_header != f"Bearer {API_KEY}":
        return Response("Não autorizado", status=401)

    # Se estiver correto, repassa a mensagem para o Ollama
    url = f"{OLLAMA_URL}/{path}"
    resp = requests.request(
        method=request.method,
        url=url,
        headers={k: v for k, v in request.headers if k.lower() != 'host'},
        data=request.get_data(),
        cookies=request.cookies,
        allow_redirects=False,
        stream=True
    )
    return Response(resp.iter_content(chunk_size=1024), resp.status_code, resp.headers.items())

if __name__ == "__main__":
    # O porteiro escuta na porta 7860 (a que o HF abre para o mundo)
    app.run(host='0.0.0.0', port=7860)