update query call
This commit is contained in:
parent
99af64d258
commit
4d02230c54
|
|
@ -1,87 +1,107 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { writable } from 'svelte/store';
|
import { writable } from 'svelte/store'
|
||||||
import axios from 'axios';
|
import axios from 'axios'
|
||||||
|
|
||||||
const messages = writable([]);
|
const messages = writable([])
|
||||||
let newMessage = '';
|
let newMessage = ''
|
||||||
let isLoading = writable(false); // To track loading state
|
let isLoading = writable(false) // To track loading state
|
||||||
|
let results = '' // Declare results here with initial empty string
|
||||||
async function processResponse() {
|
|
||||||
try {
|
|
||||||
const response = await axios.post('https://myseelia.life/query', { question: newMessage });
|
|
||||||
console.log("Response:", response.data);
|
|
||||||
|
|
||||||
messages.update(m => [...m, `Result: ${response.data.result}`]);
|
|
||||||
} catch (error) {
|
|
||||||
console.error("Error processing prompt:", error);
|
|
||||||
messages.update(m => [...m, `Error: Could not process prompt.`]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function processEntityMatchResponse() {
|
|
||||||
try {
|
|
||||||
const entityMatchResponse = await axios.post('https://myseelia.life/EntityMatchAnswer', { question: newMessage });
|
|
||||||
console.log("Entity Matching Response:", entityMatchResponse.data);
|
|
||||||
|
|
||||||
const entityMatchingResultText = entityMatchResponse.data.response.choices[0].message.content;
|
|
||||||
messages.update(m => [...m, `Entity Matching Result: ${entityMatchingResultText}`]);
|
|
||||||
} catch (error) {
|
|
||||||
console.error("Error processing Entity Match query:", error);
|
|
||||||
messages.update(m => [...m, `Error: Could not process Entity Match query.`]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function sendMessage() {
|
async function sendMessage() {
|
||||||
if (newMessage.trim() !== '') {
|
if (newMessage.trim() !== '') {
|
||||||
messages.update(m => [...m, `Query: ${newMessage}`]);
|
messages.update(m => [...m, `Query: ${newMessage}`])
|
||||||
isLoading.set(true);
|
isLoading.set(true)
|
||||||
|
|
||||||
// Extract chat history for sending to the backend
|
let chatHistory = []
|
||||||
let chatHistory = $messages.map(msg => {
|
|
||||||
return { role: msg.startsWith('Query:') ? 'user' : 'assistant', content: msg };
|
|
||||||
});
|
|
||||||
|
|
||||||
// Send both the new message and the chat history
|
// Ensure there are at least two messages (a query and a response)
|
||||||
const response = await axios.post('https://myseelia.life/query', { question: newMessage, history: chatHistory });
|
/* if ($messages.length >= 2) {
|
||||||
console.log("Response:", response.data);
|
// Extract the last query and response (excluding the current query)
|
||||||
|
const lastQueryIndex = $messages.length - 2
|
||||||
|
chatHistory = $messages
|
||||||
|
.slice(lastQueryIndex - 1, lastQueryIndex + 1)
|
||||||
|
.map(msg => {
|
||||||
|
return {
|
||||||
|
role: msg.startsWith('Query:') ? 'user' : 'assistant',
|
||||||
|
content: msg.replace(/^Query: |^Result: /, '')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} */
|
||||||
|
|
||||||
messages.update(m => [...m, `Result: ${response.data.result}`]);
|
// Send both the new message and the correct chat history
|
||||||
|
const response = await axios.post('https://myseelia.life/query', {
|
||||||
|
question: newMessage,
|
||||||
|
history: chatHistory
|
||||||
|
})
|
||||||
|
console.log('Response:', response.data)
|
||||||
|
|
||||||
newMessage = '';
|
let resultText = ''
|
||||||
isLoading.set(false);
|
|
||||||
|
// Check if there is a result and then process the Text part
|
||||||
|
if (response.data.result) {
|
||||||
|
if (response.data.result.Text) {
|
||||||
|
resultText = response.data.result.Text
|
||||||
|
// Check if resultText is an object with a nested Text field
|
||||||
|
if (typeof resultText === 'object' && resultText.Text) {
|
||||||
|
resultText = resultText.Text
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Append Details to the result text if available
|
||||||
|
if (
|
||||||
|
response.data.result.Details &&
|
||||||
|
response.data.result.Details.length > 0
|
||||||
|
) {
|
||||||
|
const detailsText = response.data.result.Details.join('')
|
||||||
|
resultText += (resultText ? '<br>' : '') + detailsText
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update messages or show 'No response received' if resultText is still empty
|
||||||
|
if (!resultText) {
|
||||||
|
messages.update(m => [...m, 'Result: No response received'])
|
||||||
|
} else {
|
||||||
|
messages.update(m => [...m, `Result: ${resultText}`]) // Removed @html here
|
||||||
|
}
|
||||||
|
|
||||||
|
newMessage = ''
|
||||||
|
isLoading.set(false)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
function formatResultItem(item) {
|
function formatResultItem(item) {
|
||||||
let formattedItem = [];
|
let formattedItem = []
|
||||||
for (const key in item) {
|
for (const key in item) {
|
||||||
if (item.hasOwnProperty(key)) {
|
if (item.hasOwnProperty(key)) {
|
||||||
let value = item[key].replace(/\"/g, ''); // Removing quotes if present
|
let value = item[key].replace(/\"/g, '') // Removing quotes if present
|
||||||
formattedItem.push(`${key}: ${value}`);
|
formattedItem.push(`${key}: ${value}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return formattedItem.join(', ');
|
return formattedItem.join(', ')
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleKeydown(event) {
|
function handleKeydown(event) {
|
||||||
if (event.key === 'Enter' && !event.shiftKey) {
|
if (event.key === 'Enter' && !event.shiftKey) {
|
||||||
event.preventDefault();
|
event.preventDefault()
|
||||||
sendMessage();
|
sendMessage()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getMessageType(message) {
|
function getMessageType(message) {
|
||||||
if (message.startsWith('Query:')) return 'query';
|
if (message.startsWith('Query:')) return 'query'
|
||||||
if (message.startsWith('SPARQL Result:')) return 'sparql-result';
|
if (message.startsWith('SPARQL Result:')) return 'sparql-result'
|
||||||
if (message.startsWith('Entity Matching Result:')) return 'entity-matching-result';
|
if (message.startsWith('Entity Matching Result:'))
|
||||||
return 'other';
|
return 'entity-matching-result'
|
||||||
|
return 'other'
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<section class="chat-container">
|
<section class="chat-container">
|
||||||
<div class="messages">
|
<div class="messages">
|
||||||
{#each $messages as message}
|
{#each $messages as message}
|
||||||
<div class={`message ${getMessageType(message)}`}>{message}</div>
|
<div class={`message ${getMessageType(message)}`}>
|
||||||
|
{@html message} <!-- Use @html here -->
|
||||||
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
<div class="input-container">
|
<div class="input-container">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue