typescriptified and also removed hardcoded addresses

This commit is contained in:
Patrick_Pluto 2024-10-03 14:10:21 +02:00
parent 61919ad094
commit 091744d75b
5 changed files with 42 additions and 18 deletions

View file

@ -15,7 +15,7 @@ const InputOutputBackend: React.FC = () => {
content: string
}
// Define state variables for user preferences and messages
// Define state variables for user preferences and messages
const [preferredCurrency, setPreferredCurrency] = useState<string>("USD");
const [preferredLanguage, setPreferredLanguage] = useState<string>("english");
const [timeFormat, setTimeFormat] = useState<string>("24-hour");
@ -24,6 +24,8 @@ const InputOutputBackend: React.FC = () => {
const [dateFormat, setDateFormat] = useState<string>("DD-MM-YYYY");
const [messages, setMessages] = useState<Message[]>([]);
const [myBoolean, setMyBoolean] = useState<boolean>(() => localStorage.getItem('myBoolean') === 'true') || false;
const apiURL = new URL("http://localhost:5000/interstellar_ai/api/ai_create")
apiURL.hostname = window.location.hostname;
// Fetch local storage values and update state on component mount
useEffect(() => {
@ -55,7 +57,7 @@ const InputOutputBackend: React.FC = () => {
{ role: "assistant", content: "Hello! How may I help you?" },
]);
}, [preferredCurrency, preferredLanguage, timeFormat, preferredMeasurement, timeZone, dateFormat, myBoolean]);
const conversationRef = useRef<HTMLDivElement>(null)
const [copyClicked, setCopyClicked] = useState(false)
@ -72,7 +74,7 @@ const InputOutputBackend: React.FC = () => {
useEffect(() => {
getNewToken()
postWorkerRef.current = new Worker(new URL("./threads/PostWorker.js", import.meta.url))
postWorkerRef.current = new Worker(new URL("./threads/PostWorker.ts", import.meta.url))
postWorkerRef.current.onmessage = (event) => {
const status = event.data.status
@ -101,7 +103,7 @@ const InputOutputBackend: React.FC = () => {
}, [])
const getNewToken = () => {
axios.get("http://localhost:5000/interstellar_ai/api/ai_create")
axios.get(apiURL.href)
.then(response => {
setAccessToken(response.data.access_token)
})
@ -113,9 +115,11 @@ const InputOutputBackend: React.FC = () => {
const startGetWorker = () => {
if (!getWorkerRef.current) {
getWorkerRef.current = new Worker(new URL("./threads/GetWorker.js", import.meta.url))
getWorkerRef.current = new Worker(new URL("./threads/GetWorker.ts", import.meta.url))
getWorkerRef.current.postMessage({ action: "start", access_token: accessToken })
const windowname = window.location.hostname
getWorkerRef.current.postMessage({ action: "start", access_token: accessToken, windowname })
addMessage("assistant", "")
getWorkerRef.current.onmessage = (event) => {
@ -178,7 +182,8 @@ const InputOutputBackend: React.FC = () => {
}
}
setInputMessage("")
postWorkerRef.current.postMessage({ messages: [...messages, { role: "user", content: inputValue }], ai_model: "llama3.2", model_type: type, access_token: accessToken, api_key: api_key })
const windowname = window.location.hostname
postWorkerRef.current.postMessage({ messages: [...messages, { role: "user", content: inputValue }], ai_model: "llama3.2", model_type: type, access_token: accessToken, api_key: api_key, windowname })
startGetWorker()
}
}
@ -228,7 +233,7 @@ const InputOutputBackend: React.FC = () => {
}
};
const handleStopClick = () => {
const handleStopClick = () => {
endGetWorker()
getNewToken()
}
@ -246,7 +251,7 @@ const InputOutputBackend: React.FC = () => {
const handleEditClick = () => {
let newestMessage = messages[messages.length - 2].content
setInputMessage(newestMessage)
const updatedMessages = messages.slice(0, messages.length-2)
const updatedMessages = messages.slice(0, messages.length - 2)
setMessages(updatedMessages)
endGetWorker()
getNewToken()

View file

@ -18,9 +18,12 @@ if all went well, you will get the status 200 in response.data.status
to check if the request was accepted or declined, check response.data.response, it will be either true or false depending on if it worked, or not.
*/
const apiURL = new URL("http://localhost:5000/interstellar_ai/db")
apiURL.hostname = window.location.hostname;
export const sendToDatabase = async (data: any): Promise<boolean> => {
try {
const response = await axios.post("http://localhost:5000/interstellar_ai/db", data);
const response = await axios.post(apiURL.href, data);
const status = response.data.status;
const success = response.data.response;
postMessage({ status, success });
@ -33,7 +36,7 @@ export const sendToDatabase = async (data: any): Promise<boolean> => {
export const sendToDatabaseAndGetString = async (data: any): Promise<string> => {
try {
const response = await axios.post("http://localhost:5000/interstellar_ai/db", data);
const response = await axios.post(apiURL.href, data);
const status = response.data.status;
const success = response.data.response;
postMessage({ status, success });

View file

@ -1,10 +1,14 @@
import axios from "axios";
let accesstoken
let windownameGlobal = ""
let accesstoken = ""
onmessage = (event) => {
const { action, access_token } = event.data
const { action, access_token, windowname } = event.data
accesstoken = access_token
windownameGlobal = windowname
if (action === "start") {
fetchData()
} else if (action === "terminate") {
@ -14,9 +18,12 @@ onmessage = (event) => {
const fetchData = () => {
const apiURL = "http://localhost:5000/interstellar_ai/api/ai_get?access_token=" + accesstoken
const apiURL = new URL("http://localhost:5000/interstellar_ai/api/ai_get?access_token=" + accesstoken)
apiURL.hostname = windownameGlobal;
axios.get(apiURL)
console.log(apiURL.href)
axios.get(apiURL.href)
.then(response => {
const data = response.data
postMessage(data)

View file

@ -1,7 +1,7 @@
import axios from "axios";
onmessage = (e) => {
const { messages, ai_model, model_type, access_token, api_key } = e.data
const { messages, ai_model, model_type, access_token, api_key, windowname } = e.data
const Message = {
@ -12,7 +12,13 @@ onmessage = (e) => {
api_key: api_key
}
axios.post("http://localhost:5000/interstellar_ai/api/ai_send", Message)
const apiURL = new URL("http://localhost:5000/interstellar_ai/api/ai_send")
console.log(windowname)
apiURL.hostname = windowname;
console.log(apiURL.href)
axios.post(apiURL.href, Message)
.then(response => {
const status = response.data.status
postMessage({ status })

View file

@ -5,7 +5,10 @@ export const sendToVoiceRecognition = (audio_data: Blob): Promise<string> => {
const formdata = new FormData()
formdata.append("audio", audio_data)
return axios.post("http://localhost:5000/interstellar_ai/api/voice_recognition", formdata)
const apiURL = new URL("http://localhost:5000/interstellar_ai/api/voice_recognition")
apiURL.hostname = window.location.hostname;
return axios.post(apiURL.href, formdata)
.then((response) => {
return response.data.response
})