mirror of
				https://github.com/Mabbs/mabbs.github.io
				synced 2025-11-04 10:06:30 +00:00 
			
		
		
		
	
		
			
	
	
		
			385 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			385 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| 
								 | 
							
								<!DOCTYPE html>
							 | 
						|||
| 
								 | 
							
								<html>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<head>
							 | 
						|||
| 
								 | 
							
								  <title>Cloudflare AI</title>
							 | 
						|||
| 
								 | 
							
								  <meta charset="utf-8">
							 | 
						|||
| 
								 | 
							
								  <meta name="viewport" content="width=device-width, initial-scale=1">
							 | 
						|||
| 
								 | 
							
								  <link rel="icon"
							 | 
						|||
| 
								 | 
							
								    href="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3E%3Ctext%20x='0'%20y='14'%20style='filter:%20invert(100%);'%3E☁️%3C/text%3E%3C/svg%3E"
							 | 
						|||
| 
								 | 
							
								    type="image/svg+xml" />
							 | 
						|||
| 
								 | 
							
								  <style>
							 | 
						|||
| 
								 | 
							
								    body {
							 | 
						|||
| 
								 | 
							
								      font-family: 'Raleway', sans-serif;
							 | 
						|||
| 
								 | 
							
								      margin: 0;
							 | 
						|||
| 
								 | 
							
								      padding: 20px;
							 | 
						|||
| 
								 | 
							
								      background-color: #222;
							 | 
						|||
| 
								 | 
							
								      color: #fff;
							 | 
						|||
| 
								 | 
							
								      backdrop-filter: blur(10px);
							 | 
						|||
| 
								 | 
							
								      overflow: hidden;
							 | 
						|||
| 
								 | 
							
								      height: 100vh;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    h1 {
							 | 
						|||
| 
								 | 
							
								      text-align: center;
							 | 
						|||
| 
								 | 
							
								      font-weight: 900;
							 | 
						|||
| 
								 | 
							
								      text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
							 | 
						|||
| 
								 | 
							
								      font-size: 64px;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    h2 {
							 | 
						|||
| 
								 | 
							
								      text-align: center;
							 | 
						|||
| 
								 | 
							
								      font-weight: bold;
							 | 
						|||
| 
								 | 
							
								      text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
							 | 
						|||
| 
								 | 
							
								      font-size: 20px;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    form {
							 | 
						|||
| 
								 | 
							
								      margin-bottom: 20px;
							 | 
						|||
| 
								 | 
							
								      display: flex;
							 | 
						|||
| 
								 | 
							
								      justify-content: center;
							 | 
						|||
| 
								 | 
							
								      /* Center items horizontally */
							 | 
						|||
| 
								 | 
							
								      align-items: center;
							 | 
						|||
| 
								 | 
							
								      /* Center items vertically */
							 | 
						|||
| 
								 | 
							
								      position: fixed;
							 | 
						|||
| 
								 | 
							
								      bottom: 12px;
							 | 
						|||
| 
								 | 
							
								      width: 100vw;
							 | 
						|||
| 
								 | 
							
								      border-radius: 10px;
							 | 
						|||
| 
								 | 
							
								      padding: 10px;
							 | 
						|||
| 
								 | 
							
								      /* Add some padding to give space around the items */
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    label {
							 | 
						|||
| 
								 | 
							
								      font-weight: bold;
							 | 
						|||
| 
								 | 
							
								      color: #ccc;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    input[type="text"] {
							 | 
						|||
| 
								 | 
							
								      width: 50%;
							 | 
						|||
| 
								 | 
							
								      padding: 10px;
							 | 
						|||
| 
								 | 
							
								      background-color: rgba(0, 0, 0, 0.3);
							 | 
						|||
| 
								 | 
							
								      color: #fff;
							 | 
						|||
| 
								 | 
							
								      border: none;
							 | 
						|||
| 
								 | 
							
								      border-radius: 5px;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    textarea {
							 | 
						|||
| 
								 | 
							
								      width: 50%;
							 | 
						|||
| 
								 | 
							
								      padding: 9px;
							 | 
						|||
| 
								 | 
							
								      color: whitesmoke;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      border: none;
							 | 
						|||
| 
								 | 
							
								      border-radius: 5px;
							 | 
						|||
| 
								 | 
							
								      font-size: 18px;
							 | 
						|||
| 
								 | 
							
								      background-color: #222222;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    textarea::-webkit-scrollbar {
							 | 
						|||
| 
								 | 
							
								      display: none;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    textarea:focus {
							 | 
						|||
| 
								 | 
							
								      outline: none;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    #response {
							 | 
						|||
| 
								 | 
							
								      max-width: 80%;
							 | 
						|||
| 
								 | 
							
								      height: calc(100% - 250px);
							 | 
						|||
| 
								 | 
							
								      margin-left: 10%;
							 | 
						|||
| 
								 | 
							
								      overflow-y: scroll;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    #response::-webkit-scrollbar {
							 | 
						|||
| 
								 | 
							
								      width: 10px;
							 | 
						|||
| 
								 | 
							
								      border-radius: 50%;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .user-message {
							 | 
						|||
| 
								 | 
							
								      background-color: rgba(71, 71, 71, 0.3);
							 | 
						|||
| 
								 | 
							
								      padding: 10px;
							 | 
						|||
| 
								 | 
							
								      margin-bottom: 10px;
							 | 
						|||
| 
								 | 
							
								      margin-left: 40%;
							 | 
						|||
| 
								 | 
							
								      max-width: 60%;
							 | 
						|||
| 
								 | 
							
								      border-radius: 10px;
							 | 
						|||
| 
								 | 
							
								      box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
							 | 
						|||
| 
								 | 
							
								      backdrop-filter: blur(4px);
							 | 
						|||
| 
								 | 
							
								      -webkit-backdrop-filter: blur(4px);
							 | 
						|||
| 
								 | 
							
								      border-radius: 10px;
							 | 
						|||
| 
								 | 
							
								      border: 1px solid rgba(255, 255, 255, 0.18);
							 | 
						|||
| 
								 | 
							
								      color: whitesmoke;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .ai-message {
							 | 
						|||
| 
								 | 
							
								      background-color: rgba(71, 71, 71, 0.3);
							 | 
						|||
| 
								 | 
							
								      padding: 10px;
							 | 
						|||
| 
								 | 
							
								      margin-bottom: 10px;
							 | 
						|||
| 
								 | 
							
								      margin-right: 40%;
							 | 
						|||
| 
								 | 
							
								      max-width: 60%;
							 | 
						|||
| 
								 | 
							
								      border-radius: 10px;
							 | 
						|||
| 
								 | 
							
								      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
							 | 
						|||
| 
								 | 
							
								      color: whitesmoke;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    p {
							 | 
						|||
| 
								 | 
							
								      margin: 0;
							 | 
						|||
| 
								 | 
							
								      padding: 0;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .smaller {
							 | 
						|||
| 
								 | 
							
								      font-size: 15;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .fa-github {
							 | 
						|||
| 
								 | 
							
								      text-decoration: none;
							 | 
						|||
| 
								 | 
							
								      color: inherit;
							 | 
						|||
| 
								 | 
							
								      position: fixed;
							 | 
						|||
| 
								 | 
							
								      bottom: 0;
							 | 
						|||
| 
								 | 
							
								      right: 0;
							 | 
						|||
| 
								 | 
							
								      padding: 15px;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .dropbtn {
							 | 
						|||
| 
								 | 
							
								      background-color: #191b1c;
							 | 
						|||
| 
								 | 
							
								      color: white;
							 | 
						|||
| 
								 | 
							
								      padding: 16px;
							 | 
						|||
| 
								 | 
							
								      font-size: 16px;
							 | 
						|||
| 
								 | 
							
								      border: none;
							 | 
						|||
| 
								 | 
							
								      cursor: pointer;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .dropdown {
							 | 
						|||
| 
								 | 
							
								      position: relative;
							 | 
						|||
| 
								 | 
							
								      display: inline-block;
							 | 
						|||
| 
								 | 
							
								      position: absolute;
							 | 
						|||
| 
								 | 
							
								      top: 5px;
							 | 
						|||
| 
								 | 
							
								      left: 5px;
							 | 
						|||
| 
								 | 
							
								      padding: 10px;
							 | 
						|||
| 
								 | 
							
								      color: #fff;
							 | 
						|||
| 
								 | 
							
								      border: none;
							 | 
						|||
| 
								 | 
							
								      border-radius: 5px;
							 | 
						|||
| 
								 | 
							
								      cursor: pointer;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .dropdown-content {
							 | 
						|||
| 
								 | 
							
								      display: none;
							 | 
						|||
| 
								 | 
							
								      position: absolute;
							 | 
						|||
| 
								 | 
							
								      background-color: #191b1c;
							 | 
						|||
| 
								 | 
							
								      min-width: 160px;
							 | 
						|||
| 
								 | 
							
								      box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
							 | 
						|||
| 
								 | 
							
								      z-index: 1;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .dropdown-content a {
							 | 
						|||
| 
								 | 
							
								      color: #fff;
							 | 
						|||
| 
								 | 
							
								      padding: 12px 16px;
							 | 
						|||
| 
								 | 
							
								      text-decoration: none;
							 | 
						|||
| 
								 | 
							
								      display: block;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .dropdown-content a:hover {
							 | 
						|||
| 
								 | 
							
								      background-color: black
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .dropdown:hover .dropdown-content {
							 | 
						|||
| 
								 | 
							
								      display: block;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .dropdown:hover .dropbtn {
							 | 
						|||
| 
								 | 
							
								      background-color: #444;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    button {
							 | 
						|||
| 
								 | 
							
								      font-size: 18px;
							 | 
						|||
| 
								 | 
							
								      color: #e1e1e1;
							 | 
						|||
| 
								 | 
							
								      font-family: inherit;
							 | 
						|||
| 
								 | 
							
								      font-weight: 800;
							 | 
						|||
| 
								 | 
							
								      cursor: pointer;
							 | 
						|||
| 
								 | 
							
								      position: relative;
							 | 
						|||
| 
								 | 
							
								      border: none;
							 | 
						|||
| 
								 | 
							
								      background: none;
							 | 
						|||
| 
								 | 
							
								      text-transform: uppercase;
							 | 
						|||
| 
								 | 
							
								      transition-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1);
							 | 
						|||
| 
								 | 
							
								      transition-duration: 400ms;
							 | 
						|||
| 
								 | 
							
								      transition-property: color;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    button:focus,
							 | 
						|||
| 
								 | 
							
								    button:hover {
							 | 
						|||
| 
								 | 
							
								      color: #fff;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    button:focus:after,
							 | 
						|||
| 
								 | 
							
								    button:hover:after {
							 | 
						|||
| 
								 | 
							
								      width: 100%;
							 | 
						|||
| 
								 | 
							
								      left: 0%;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    button:after {
							 | 
						|||
| 
								 | 
							
								      content: "";
							 | 
						|||
| 
								 | 
							
								      pointer-events: none;
							 | 
						|||
| 
								 | 
							
								      bottom: -2px;
							 | 
						|||
| 
								 | 
							
								      left: 50%;
							 | 
						|||
| 
								 | 
							
								      position: absolute;
							 | 
						|||
| 
								 | 
							
								      width: 0%;
							 | 
						|||
| 
								 | 
							
								      height: 2px;
							 | 
						|||
| 
								 | 
							
								      background-color: #fff;
							 | 
						|||
| 
								 | 
							
								      transition-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1);
							 | 
						|||
| 
								 | 
							
								      transition-duration: 400ms;
							 | 
						|||
| 
								 | 
							
								      transition-property: width, left;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    .github-icon {
							 | 
						|||
| 
								 | 
							
								      position: fixed;
							 | 
						|||
| 
								 | 
							
								      right: 50px;
							 | 
						|||
| 
								 | 
							
								      bottom: 50px;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    /* if screen width<1000 then max -width=100% */
							 | 
						|||
| 
								 | 
							
								    @media screen and (max-width: 1000px) {
							 | 
						|||
| 
								 | 
							
								      #response {
							 | 
						|||
| 
								 | 
							
								        max-width: 100%;
							 | 
						|||
| 
								 | 
							
								        margin-left: 0;
							 | 
						|||
| 
								 | 
							
								        height: calc(100% - 280px);
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      textarea {
							 | 
						|||
| 
								 | 
							
								        width: 80%;
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      .github-icon {
							 | 
						|||
| 
								 | 
							
								        visibility: hidden;
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      form {
							 | 
						|||
| 
								 | 
							
								        bottom: 0;
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      .ai-message {
							 | 
						|||
| 
								 | 
							
								        max-width: 80%;
							 | 
						|||
| 
								 | 
							
								        min-width: 80%;
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								  </style>
							 | 
						|||
| 
								 | 
							
								  <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
							 | 
						|||
| 
								 | 
							
								  <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
							 | 
						|||
| 
								 | 
							
								  <link rel="preconnect" href="https://fonts.googleapis.com">
							 | 
						|||
| 
								 | 
							
								  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
							 | 
						|||
| 
								 | 
							
								  <link href="https://fonts.googleapis.com/css2?family=Raleway:wght@700&display=swap" rel="stylesheet">
							 | 
						|||
| 
								 | 
							
								  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
							 | 
						|||
| 
								 | 
							
								</head>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<body>
							 | 
						|||
| 
								 | 
							
								  <h1>Cloudflare AI</h1>
							 | 
						|||
| 
								 | 
							
								  <div class="dropdown">
							 | 
						|||
| 
								 | 
							
								    <button class="dropbtn">Settings</button>
							 | 
						|||
| 
								 | 
							
								    <div class="dropdown-content">
							 | 
						|||
| 
								 | 
							
								      <a href="#" onclick='setApiUrl()'>Custom API URL</a>
							 | 
						|||
| 
								 | 
							
								      <a href="#" onclick='setIDsession()'>Custom ID Session</a>
							 | 
						|||
| 
								 | 
							
								    </div>
							 | 
						|||
| 
								 | 
							
								  </div>
							 | 
						|||
| 
								 | 
							
								  <div id="response">
							 | 
						|||
| 
								 | 
							
								    <div class="ai-message">Hey there, how can i assist you?</div>
							 | 
						|||
| 
								 | 
							
								  </div>
							 | 
						|||
| 
								 | 
							
								  <form id="chatForm">
							 | 
						|||
| 
								 | 
							
								    <textarea id="input" type="text" placeholder="Send a message"></textarea>
							 | 
						|||
| 
								 | 
							
								    <button type="submit">➤</button>
							 | 
						|||
| 
								 | 
							
								  </form>
							 | 
						|||
| 
								 | 
							
								  <a class="fa fa-github github-icon" href="https://github.com/localuser-isback/Cloudflare-AI" style="font-size:36px">
							 | 
						|||
| 
								 | 
							
								    <script>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      // --------------- CONFIG --------------- //
							 | 
						|||
| 
								 | 
							
								      // modify URL to your API
							 | 
						|||
| 
								 | 
							
								      let apiUrl = "https://llama.mayx.eu.org"
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      // ----------- END OF CONFIG ------------ //
							 | 
						|||
| 
								 | 
							
								      let uuid = '';
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      function setApiUrl() {
							 | 
						|||
| 
								 | 
							
								        const customUrl = prompt("Enter custom API URL: ");
							 | 
						|||
| 
								 | 
							
								        if (customUrl) {
							 | 
						|||
| 
								 | 
							
								          apiUrl = customUrl;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      function setIDsession() {
							 | 
						|||
| 
								 | 
							
								        const customUUID = prompt("Enter custom session ID: ");
							 | 
						|||
| 
								 | 
							
								        if (customUUID) {
							 | 
						|||
| 
								 | 
							
								          uuid = customUUID;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      function generateUUID() {
							 | 
						|||
| 
								 | 
							
								        let newUUID = '';
							 | 
						|||
| 
								 | 
							
								        const chars = 'abcdef0123456789';
							 | 
						|||
| 
								 | 
							
								        for (let i = 0; i < 32; i++) {
							 | 
						|||
| 
								 | 
							
								          const charIndex = Math.floor(Math.random() * chars.length);
							 | 
						|||
| 
								 | 
							
								          newUUID += chars[charIndex];
							 | 
						|||
| 
								 | 
							
								          if (i === 7 || i === 11 || i === 15 || i === 19) {
							 | 
						|||
| 
								 | 
							
								            newUUID += '-';
							 | 
						|||
| 
								 | 
							
								          }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return newUUID;
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								      const chatForm = document.getElementById('chatForm');
							 | 
						|||
| 
								 | 
							
								      const inputField = document.getElementById('input');
							 | 
						|||
| 
								 | 
							
								      const responseDiv = document.getElementById('response');
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      function chat() {
							 | 
						|||
| 
								 | 
							
								        var input = inputField.value;
							 | 
						|||
| 
								 | 
							
								        input = encodeURIComponent(input)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        const userMessageDiv = document.createElement('div');
							 | 
						|||
| 
								 | 
							
								        userMessageDiv.className = 'user-message';
							 | 
						|||
| 
								 | 
							
								        userMessageDiv.innerText = decodeURIComponent(input);
							 | 
						|||
| 
								 | 
							
								        responseDiv.appendChild(userMessageDiv);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        const loadingDiv = document.createElement('div');
							 | 
						|||
| 
								 | 
							
								        loadingDiv.className = 'loading';
							 | 
						|||
| 
								 | 
							
								        loadingDiv.innerHTML = `<svg width="30" height="30" viewBox="0 0 50 50"><circle cx="25" cy="25" r="20" stroke="black" stroke-width="4" fill="none" /><circle cx="25" cy="25" r="20" stroke="#3498db" stroke-width="4" fill="none" stroke-dasharray="90" stroke-dashoffset="0"><animateTransform attributeName="transform" type="rotate" from="0 25 25" to="360 25 25" dur="1s" repeatCount="indefinite"/></circle></svg><center class="smaller">If you recive an error than wait 1-2 minutes refresh and try again.</center>`;
							 | 
						|||
| 
								 | 
							
								        responseDiv.appendChild(loadingDiv);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        axios.get(`${apiUrl}/${uuid}?q=${encodeURIComponent(input)}`)
							 | 
						|||
| 
								 | 
							
								          .then((response) => {
							 | 
						|||
| 
								 | 
							
								            responseDiv.removeChild(loadingDiv);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            const aiMessages = response.data[0].response.filter(message => message.role === 'system' && message.content.response);
							 | 
						|||
| 
								 | 
							
								            if (aiMessages.length > 0) {
							 | 
						|||
| 
								 | 
							
								              const lastAiMessage = aiMessages[aiMessages.length - 1];
							 | 
						|||
| 
								 | 
							
								              const aiMessageDiv = document.createElement('div');
							 | 
						|||
| 
								 | 
							
								              aiMessageDiv.className = 'ai-message';
							 | 
						|||
| 
								 | 
							
								              aiMessageDiv.innerHTML = marked.parse(lastAiMessage.content.response);
							 | 
						|||
| 
								 | 
							
								              responseDiv.appendChild(aiMessageDiv);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            inputField.value = '';
							 | 
						|||
| 
								 | 
							
								          })
							 | 
						|||
| 
								 | 
							
								          .catch((error) => {
							 | 
						|||
| 
								 | 
							
								            console.log("Error receiving response:", error);
							 | 
						|||
| 
								 | 
							
								          });
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      chatForm.addEventListener('submit', (event) => {
							 | 
						|||
| 
								 | 
							
								        event.preventDefault();
							 | 
						|||
| 
								 | 
							
								        chat()
							 | 
						|||
| 
								 | 
							
								      });
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      inputField.addEventListener('keydown', (event) => {
							 | 
						|||
| 
								 | 
							
								        if (event.key === 'Enter') {
							 | 
						|||
| 
								 | 
							
								          if (!event.shiftKey) {
							 | 
						|||
| 
								 | 
							
								            event.preventDefault();
							 | 
						|||
| 
								 | 
							
								            chat()
							 | 
						|||
| 
								 | 
							
								          }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								      });
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      if (!uuid) {
							 | 
						|||
| 
								 | 
							
								        uuid = generateUUID();
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								    </script>
							 | 
						|||
| 
								 | 
							
								</body>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								</html>
							 |