SpeakGPT คือผู้ช่วย AI แบบโอเพ่นซอร์สขั้นสูงและใช้งานง่าย ซึ่งใช้เทคโนโลยี OpenAI อันทรงพลังเพื่อมอบประสิทธิภาพและฟังก์ชันการทำงานที่เหนือชั้นให้กับคุณ
นี่คือ SpeakGPT เวอร์ชันเดสก์ท็อปที่สร้างโดยใช้ ReactJS และ Google Material Design 3
บันทึก
โครงการนี้เป็นส่วนหนึ่งของวิทยานิพนธ์ระดับปริญญาตรีของฉัน จำเป็นต้องแสดงที่มาเพื่อใช้งานนี้ ลิขสิทธิ์ (c) 2023-2024 Dmytro Ostapenko สงวนลิขสิทธิ์.
อ้างเป็น: Dmytro Ostapenko (2024), "ทบทวนโปรแกรมอัตโนมัติโดยใช้บริการ Copilot" วิทยานิพนธ์ระดับปริญญาตรี, Technical University of Košice, 2024
เปิดเว็บ SpeakGPT: https://assistant.teslasoft.org/
ดู SpeakGPT สำหรับ Android: 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 ;
Assistant สามารถปรับแต่งได้ด้วยเพย์โหลด เพย์โหลดเป็นสตริง JSON ที่เข้ารหัส base64 ซึ่งมีพารามิเตอร์ เพย์โหลดจะอยู่หลัง /embedded/ ใน URL ตัวอย่าง:
< 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
- URL ไปยังไอคอนที่จะแสดงที่ด้านบนของหน้าต่างผู้ช่วยเมื่อการสนทนาว่างเปล่าdescription
- คำอธิบายที่จะแสดงที่ด้านบนของหน้าต่างผู้ช่วยเมื่อการสนทนาว่างเปล่า รองรับ HTMLinitialMessage
- ข้อความที่จะถูกส่งไปยังผู้ช่วยเมื่อมีการโหลดinitialResponse
- การตอบสนองของผู้ช่วยเพื่อให้การสนทนาทำงานได้อย่างถูกต้องsystemMessage
- ข้อความที่มีเนื้อหาเพิ่มเติมที่ไม่แสดงในแชทและต่อท้ายประวัติการแชทchatLocation
- ตำแหน่งของแชทในฐานข้อมูลที่จัดทำดัชนี ห้ามใช้ช่องว่างหรืออักขระพิเศษจะมีการเพิ่มพารามิเตอร์เพิ่มเติมในอนาคต
SpeakGPT ใช้ OpenAI API เพื่อมอบประสบการณ์ที่ดีที่สุดให้กับคุณ การใช้คีย์ API มีความปลอดภัยมากกว่าการใช้ชื่อผู้ใช้/รหัสผ่านของคุณ ไม่สามารถรับข้อมูลส่วนบุคคลของคุณโดยใช้คีย์ API OpenAI ให้การเข้าถึง API ราคาถูกสำหรับบริการของพวกเขา รหัส API ของคุณถูกจัดเก็บไว้ในอุปกรณ์ของคุณและจะไม่แชร์กับใครเลย SpeakGPT จะไม่รวบรวมข้อมูลส่วนบุคคลใด ๆ SpeakGPT เป็นโอเพ่นซอร์สและคุณสามารถตรวจสอบโค้ดได้ด้วยตัวเอง SpeakGPT แต่ละรุ่นจะมีการตรวจสอบบน VirusTotal หากคุณมีข้อกังวลใดๆ คุณสามารถเพิกถอนคีย์ API ของคุณอย่างปลอดภัยหรือใช้คีย์ API แยกต่างหากสำหรับ SpeakGPT
เพื่อรักษาความปลอดภัยคีย์ API ของคุณให้ทำตามขั้นตอนต่อไปนี้:
เหตุใดเราจึงทำให้โค้ดของเราสับสนในการเผยแพร่เวอร์ชันที่ใช้งานจริง
การสร้างความสับสนและการลดขนาดทรัพยากรช่วยให้เราปรับขนาดแอปให้เหมาะสม ประสิทธิภาพการทำงาน และรักษาความปลอดภัยจากวิศวกรรมย้อนกลับหรือการงัดแงะ และตรวจสอบให้แน่ใจว่าข้อมูลประจำตัวของคุณ เช่น คีย์ API อยู่ในที่ปลอดภัย คุณสามารถขอบิลด์ที่ไม่ซับซ้อนหรือคอมไพล์ด้วยตนเองเพื่อให้แน่ใจว่าแอปของเราปลอดภัย
เอกลักษณ์ของนักพัฒนา
ชื่อผู้พัฒนา: Dmytro Ostapenko (AndraxDev)
ติดต่อ: [email protected], +421951829517
ที่อยู่ตามกฎหมาย: Južná trya 4B, 04001 Košice, สโลวาเกีย 04001
รหัสนิติบุคคล: 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.