import requests as RE
import flask as FL




class Proxy(FL.Flask):
    def __init__(self,host):
       
        super().__init__(__name__)
        self.host=host
        self.before_request(self._handle)
    
    def _handle(self):
        req=FL.request
        ps={}
        for k in req.args:
            v=req.args[k]
            ps[k]=v
        hd={}
        for k,v in req.headers:
            hd[k]=v
        r=RE.request(method=req.method,url=self.host+req.path,data=self._send(req.stream))
        out=self._output(r)
        res=FL.Response(response=out)
        res.status_code=r.status_code
        for k in r.headers:
            v=r.headers[k]
            res.headers[k]=v
        return res
            
    def _send(self,f):
        while 1:
            r=f.read(1024)
            if not r:
                break
            yield r

    def _output(self,r:RE.Response):
        for i in r.iter_content(chunk_size=1024):
            yield i
   
        


app=Proxy('http://127.0.0.1:8000')
app.run()
        
       

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐