From 093577dd96d29d783cad75e2fe6cde282394a283 Mon Sep 17 00:00:00 2001 From: abhishekbhakat Date: Mon, 24 Feb 2025 13:25:13 +0000 Subject: [PATCH] resolve csrf --- .../templates/wingman_chat.html | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/airflow-wingman/src/airflow_wingman/templates/wingman_chat.html b/airflow-wingman/src/airflow_wingman/templates/wingman_chat.html index 3187fde..f1ba825 100644 --- a/airflow-wingman/src/airflow_wingman/templates/wingman_chat.html +++ b/airflow-wingman/src/airflow_wingman/templates/wingman_chat.html @@ -1,5 +1,10 @@ {% extends "appbuilder/base.html" %} +{% block head_meta %} + {{ super() }} + +{% endblock %} + {% block content %}
@@ -237,8 +242,7 @@ document.addEventListener('DOMContentLoaded', function() { return; } - const provider = selectedModel.getAttribute('data-provider'); - const modelId = selectedModel.value.split(':')[1]; + const [provider, modelId] = selectedModel.value.split(':'); const modelName = provider === 'openrouter' ? modelNameInput.value : modelId; // Clear input and add user message @@ -268,11 +272,29 @@ document.addEventListener('DOMContentLoaded', function() { return; } + // Debug log the request + const requestData = { + provider: provider, + model: modelName, + messages: messages, + api_key: apiKey, + stream: true, + temperature: 0.7 + }; + console.log('Sending request:', {...requestData, api_key: '***'}); + + // Get CSRF token + const csrfToken = document.querySelector('meta[name="csrf-token"]')?.getAttribute('content'); + if (!csrfToken) { + throw new Error('CSRF token not found. Please refresh the page.'); + } + // Send request const response = await fetch('/wingman/chat', { method: 'POST', headers: { 'Content-Type': 'application/json', + 'X-CSRFToken': csrfToken }, body: JSON.stringify({ provider: provider,