fixes for chunk streaming + clean up
This commit is contained in:
+9
-4
@@ -39,10 +39,10 @@ class SXNGPlugin(Plugin):
|
|||||||
self.secret = os.getenv('SXNG_LLM_SECRET') or hashlib.sha256(self.api_key.encode()).hexdigest()
|
self.secret = os.getenv('SXNG_LLM_SECRET') or hashlib.sha256(self.api_key.encode()).hexdigest()
|
||||||
else:
|
else:
|
||||||
self.secret = os.getenv('SXNG_LLM_SECRET', '')
|
self.secret = os.getenv('SXNG_LLM_SECRET', '')
|
||||||
logger.warning("Gemini Flash plugin: No API key configured, plugin will be inactive")
|
logger.warning("AI Answers plugin: No API key configured, plugin will be inactive")
|
||||||
|
|
||||||
def init(self, app):
|
def init(self, app):
|
||||||
@app.route('/gemini-stream', methods=['POST'])
|
@app.route('/ai-stream', methods=['POST'])
|
||||||
def g_stream():
|
def g_stream():
|
||||||
data = request.json or {}
|
data = request.json or {}
|
||||||
token = data.get('tk', '')
|
token = data.get('tk', '')
|
||||||
@@ -149,7 +149,12 @@ class SXNGPlugin(Plugin):
|
|||||||
except Exception as e: logger.error(f"OpenRouter Stream Exception: {e}")
|
except Exception as e: logger.error(f"OpenRouter Stream Exception: {e}")
|
||||||
|
|
||||||
generator = generate_openrouter if self.provider == 'openrouter' else generate_gemini
|
generator = generate_openrouter if self.provider == 'openrouter' else generate_gemini
|
||||||
return Response(generator(), mimetype='text/plain', headers={'X-Accel-Buffering': 'no'})
|
return Response(generator(), mimetype='text/event-stream', headers={
|
||||||
|
'X-Accel-Buffering': 'no',
|
||||||
|
'Cache-Control': 'no-cache, no-store',
|
||||||
|
'Connection': 'keep-alive',
|
||||||
|
'Content-Encoding': 'identity'
|
||||||
|
})
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def post_search(self, request, search) -> EngineResults:
|
def post_search(self, request, search) -> EngineResults:
|
||||||
@@ -195,7 +200,7 @@ class SXNGPlugin(Plugin):
|
|||||||
|
|
||||||
try {{
|
try {{
|
||||||
const ctx = new TextDecoder().decode(Uint8Array.from(atob(b64), c => c.charCodeAt(0)));
|
const ctx = new TextDecoder().decode(Uint8Array.from(atob(b64), c => c.charCodeAt(0)));
|
||||||
const res = await fetch('/gemini-stream', {{
|
const res = await fetch('/ai-stream', {{
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {{ 'Content-Type': 'application/json' }},
|
headers: {{ 'Content-Type': 'application/json' }},
|
||||||
body: JSON.stringify({{ q: q, context: ctx, tk: tk }})
|
body: JSON.stringify({{ q: q, context: ctx, tk: tk }})
|
||||||
|
|||||||
Reference in New Issue
Block a user