SpeakGPT 是一款先進且高度直覺的開源 AI 助手,它利用強大的 OpenAI 技術為您提供無與倫比的效能和功能。
這是使用 ReactJS 和 Google Material Design 3 建立的 SpeakGPT 桌面版本。
筆記
這個計畫是我的學士論文的一部分。使用本作品需註明出處。版權所有 (c) 2023-2024 德米特羅·奧斯塔彭科。版權所有。
引用為:Dmytro Ostapenko (2024),「使用副駕駛服務審查程序自動化」學士論文,科希策技術大學,2024 年。
啟動 SpeakGPT 網址:https://assistant.teslasoft.org/
查看 Android 版 SpeakGPT:https://github.com/AndraxDev/speak-gpt。
您可以將 SpeakGPT 嵌入到您的網站或應用程式中。只需使用以下程式碼:
< style >
/* Can be customized depending on your needs */
.assistant-embedded {
width: 500px;
height: calc(100vh - 128px);
background-color: rgba(50, 50, 50, 0.4);
position: fixed;
right: 24px;
top: 100px;
z-index: 100000;
border-radius: 48px;
}
.assistant-iframe {
width: 100%;
height: 100%;
border: none;
background-color: transparent;
}
</ style >
...
< div class =" assistant-embedded " id =" speakgpt " style =" display: none; " >
< iframe src =" https://assistant.teslasoft.org/embedded " class =" assistant-iframe " > </ iframe >
</ div >
...
< script >
function switchAssistant ( ) {
if ( localStorage . getItem ( "assistantOpened" ) === "true" ) {
document . getElementById ( "speakgpt" ) . style . display = "none" ;
localStorage . setItem ( "assistantOpened" , "false" )
} else {
document . getElementById ( "speakgpt" ) . style . display = "block" ;
localStorage . setItem ( "assistantOpened" , "true" )
}
}
function loadAssistant ( ) {
if ( localStorage . getItem ( "assistantOpened" ) === "true" ) {
document . getElementById ( "speakgpt" ) . style . display = "block" ;
} else {
document . getElementById ( "speakgpt" ) . style . display = "none" ;
}
}
loadAssistant ( ) ;
</ script >
反應實施:
import React , { useState } from "react" ;
function MyComponent ( ) {
const [ assistantIsOpened , setAssistantIsOpened ] = useState ( false ) ;
return (
< div >
< button className = { "btn" } onClick = { ( ) => {
if ( assistantIsOpened ) {
setAssistantIsOpened ( false ) ;
} else {
setAssistantIsOpened ( true ) ;
}
} } > { assistantIsOpened ? "Close Assistant" : "Open Assistant" }
< / button >
{
assistantIsOpened ? < div className = { "assistant-embedded" } >
< iframe src = { "https://assistant.teslasoft.org/embedded" } className = { "assistant-iframe" } title = { "SpeakGPT" } / >
< / div > : null
}
< / div >
) ;
}
export default MyComponent ;
可以使用有效負載來自訂助手。有效負載是包含參數的 base64 編碼的 JSON 字串。有效負載位於 URL 中的 /embedded/ 之後。例子:
< iframe src =" https://assistant.teslasoft.org/embedded?payload=eyJuYW1lIjoiRXhhbXBsZSBDaGF0IiwiaW5pdGlhbE1lc3NhZ2UiOiJIZWxsbywgaG93IGFyZSB5b3U%2FIiwiaW5pdGlhbFJlc3BvbnNlIjoiSSdtIGZpbmUsIHRoYW5rIHlvdS4iLCJzeXN0ZW1NZXNzYWdlIjoiVGhpcyBpcyBhbiBleGFtcGxlIGNoYXQuIFBsZWFzZSBiZSBwb2xpdGUuIiwiY2hhdExvY2F0aW9uIjoiZXhhbXBsZUNoYXQifQ%3D%3D " > </ iframe >
為了讓助手正常運作,您必須對您的有效負載進行 URL 編碼。
let encodedPayload = encodeURIComponent ( btoa ( json ) ) ;
有效負載範例:
{
"name" : " Example Chat " ,
"icon" : " https://example.com/icon.png " ,
"description" : " This assistant can provide you with relevant responses based on ... " ,
"initialMessage" : " Hello, how are you? " ,
"initialResponse" : " I'm fine, thank you. " ,
"systemMessage" : " This is an example chat. Please be polite. " ,
"chatLocation" : " exampleLocation "
}
name
- 將顯示在助手視窗頂部的名稱icon
- 當對話為空時將顯示在助手視窗頂部的圖示的 URLdescription
- 當對話為空時,將顯示在助手視窗頂部的描述。支援HTMLinitialMessage
- 載入助手時將發送給助手的訊息initialResponse
- 助理的響應以使對話正常進行systemMessage
- 帶有附加內容的訊息,這些內容未顯示在聊天中,並附加到聊天歷史記錄的末尾。chatLocation
- 索引資料庫中聊天的位置,不要使用空格或特殊字符將來會增加更多參數。
SpeakGPT 使用 OpenAI API 為您提供最佳體驗。使用 API 金鑰比使用您的使用者名稱/密碼更安全。無法使用 API 金鑰來取得您的個人資訊。 OpenAI 提供廉價的 API 存取其服務。您的 API 金鑰儲存在您的裝置本機,不會與任何人共用。 SpeakGPT 不收集任何個人資料。 SpeakGPT 是開源的,你可以自己查看程式碼。 SpeakGPT 的每個版本都會在 VirusTotal 上檢查。如果您有任何疑慮,可以撤銷您的 API 金鑰或為 SpeakGPT 使用單獨的 API 金鑰。
若要保護您的 API 金鑰,請執行下列步驟:
為什麼我們在生產版本中混淆程式碼?
混淆和資源縮減使我們能夠優化應用程式大小、效能並確保其免受逆向工程或篡改,並確保您的憑證(例如 API 金鑰)位於安全的地方。您可以請求未混淆的建置或自行編譯,以確保我們的應用程式是安全的。
開發者身分
開發者名稱:Dmytro Ostapenko (AndraxDev)
聯絡方式:[email protected],+421951829517
法定地址:Južná Tryda 4B, 04001 Košice, Slovakia 04001
法人 ID:55545386
Copyright (c) 2023-2024 Dmytro Ostapenko. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.