agents/frontend/app.js

63 lines
2.4 KiB
JavaScript
Raw Normal View History

2024-06-09 13:45:19 -04:00
document.getElementById('react-query-form').addEventListener('submit', async (e) => {
e.preventDefault();
const queryText = document.getElementById('react-query-text').value;
const response = await fetch('/react_query', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ query: queryText }),
});
const data = await response.json();
const taskId = data.task_id;
monitorTask(taskId);
});
async function monitorTask(taskId) {
const statusDiv = document.getElementById('results');
statusDiv.innerHTML = `<p>Task ID: ${taskId}</p><p>Status: Monitoring...</p>`;
let completed = false;
while (!completed) {
const response = await fetch(`/status/${taskId}`);
const data = await response.json();
statusDiv.innerHTML = `<p>Task ID: ${taskId}</p><p>Status: ${data.status}</p><p>Current Step: ${data.current_step}</p>`;
if (data.status === 'completed') {
completed = true;
const stepsList = data.steps.map(step => `<li>${step}</li>`).join('');
statusDiv.innerHTML += `<ul>${stepsList}</ul>`;
break;
}
await new Promise(resolve => setTimeout(resolve, 2000));
}
}
document.getElementById('query-form').addEventListener('submit', async (e) => {
e.preventDefault();
const queryText = document.getElementById('query-text').value;
const agent = document.getElementById('agent-select').value;
const response = await fetch('/query', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ query: queryText, agent }),
});
const data = await response.json();
const resultsDiv = document.getElementById('results');
resultsDiv.innerHTML = data.results.map(result => `<p>${result.content}</p>`).join('');
});
document.getElementById('upload-form').addEventListener('submit', async (e) => {
e.preventDefault();
const fileInput = document.getElementById('file-input');
const formData = new FormData();
formData.append('file', fileInput.files[0]);
const response = await fetch('/upload', {
method: 'POST',
body: formData,
});
const data = await response.json();
const resultsDiv = document.getElementById('results');
resultsDiv.innerHTML = `<p>${data.message}</p>`;
});