สำคัญ: สงครามในยูเครนยังคงดำเนินต่อไป ทุกวันทหารรัสเซียข่มขืนฆาตกรรมการทรมานและการเนรเทศพลเรือนยูเครน เยี่ยมชมหน้านี้เพื่อดูว่าคุณสามารถสนับสนุนยูเครนวันนี้ได้อย่างไร
Horace ช่วยให้คุณใช้แชทบ็อตที่กำหนดเองด้วยตัวเลือก LLM และชุดปลั๊กอิน CHATGPT มันทำงานเป็นเซิร์ฟเวอร์ WebSocket ช่วยให้คุณสามารถเพิ่ม chatbot ที่ขับเคลื่อนด้วย LLM ลงในเว็บหรือแอพมือถือของคุณได้อย่างง่ายดาย
คุณสมบัติ:
none , user_http , service_httpฮอเรซสร้างและขยายเกรซซึ่งเป็นแชทบ็อตที่ขับเคลื่อนด้วย LLM ดั้งเดิมของฉัน นี่คือ Horace ที่ทำงานในโหมดดีบักด้วยปลั๊กอิน Klarna Chatgpt เข้าถึงได้ผ่านเว็บไคลเอนต์:
cd horacepython3 -m venv ./venvsource ./venv/bin/activatepip3 install -r requirements.txtapp : cd appOPENAI_API_KEY=openai-api-key python3 main.py (แทนที่ openai-api-key ด้วยคีย์ OpenAI API ของคุณ-รับที่นี่) cd horace
source ./venv/bin/activate
python3 app/horace-cli.py
client-demo/index.html ใน Explorer/Finder ฯลฯ เพื่อเปิดในเบราว์เซอร์ของคุณ cd horacedocker build -t horace:latest . docker run --rm
-e OPENAI_API_KEY=openai-api-key
-p 8001:8001
--name horace
horace:latest
docker exec -it horace python3 /app/horace-cli.pyclient-demo/index.html ใน Explorer/Finder ฯลฯ เพื่อเปิดในเบราว์เซอร์ของคุณ main.py และ horace-cli.py สนับสนุนอาร์กิวเมนต์บรรทัดคำสั่งสองสามข้อ:
python3 main.py --help
usage: main.py [-h] [--host HOST] [--port PORT] [--debug]
optional arguments:
-h, --help show this help message and exit
--host HOST bind host name
--port PORT bind port number
--debug enable debug mode
python3 app/horace-cli.py --help
usage: horace-cli.py [-h] [--host HOST] [--port PORT]
optional arguments:
-h, --help show this help message and exit
--host HOST server host name
--port PORT server port number
ในขณะนี้รองรับแบ็กเอนด์ OpenAI API เท่านั้น (ฉันไม่ได้ตระหนักถึง LLM ที่ไม่ใช่ Openai ที่มีระดับของคำสั่งที่ตอบสนองเพียงพอสำหรับการเรียกใช้ปลั๊กอินในขณะนี้) อย่างไรก็ตามการเพิ่มแบ็กเอนด์ LLM ที่กำหนดเองกับ Horace นั้นค่อนข้างตรงไปตรงมา:
Backend ที่ตั้งอยู่ใน backends/backend.py และใช้วิธี complete()backendsmain.pyBACKENDS กเอนด์ใน main.py เพื่อรวมนามแฝงของแบ็กเอนด์และชื่อคลาสใหม่ของคุณconfig.yaml : backend:
name: my_llm_backend
อ้างถึงแบ็กเอนด์ OpenAI API ( backends/openai_backend.py ) เป็นตัวอย่าง
แบ็กเอนด์ OpenAI API ช่วยให้คุณสลับระหว่างรุ่นต่อไปนี้:
ดู config.yaml สำหรับการสลับระหว่างรุ่น OpenAI API
Horace ทำงานร่วมกับปลั๊กอิน CHATGPT นอกกรอบ ในการเปิดใช้งานปลั๊กอินให้เพิ่มชื่อโฮสต์ด้วยหมายเลขพอร์ตเสริมลงในส่วน plugins ใน config.yaml :
router:
plugins:
# For https://github.com/artmatsak/chatgpt-todo-plugin/
# - localhost:5002
- www.klarna.com
เมื่อเริ่มต้นเซิร์ฟเวอร์จะร้องขอ http://[hostname]/.well-known/ai-plugin.json สำหรับแต่ละปลั๊กอินและนำมันมาจากที่นั่นเพื่อโหลด
ปัจจุบัน Horace รองรับ none user_http และ server_http Auth Methods สำหรับปลั๊กอิน Chatgpt หากจำเป็นต้องมีโทเค็นการรับรองความถูกต้องสำหรับปลั๊กอิน Horace จะขอให้คุณหนึ่งในระหว่างการเริ่มต้นเซิร์ฟเวอร์ ในขณะนี้โทเค็นรับรองความถูกต้องจะถูกบันทึกไว้ใน .plugin_auth.json
พรอมต์ LLM เริ่มต้นสำหรับ Horace ได้รับการออกแบบมาเพื่อทำให้ Bot เป็นกลาง บอทไม่ได้ จำกัด อยู่ที่คำขอของผู้ใช้ปลั๊กอิน (เช่นการจองร้านอาหารจะเป็นเช่น) และไม่ได้ผลักดันฟังก์ชั่นที่เปิดใช้งานปลั๊กอินไปยังผู้ใช้ในเชิงรุก กล่าวอีกนัยหนึ่งคุณสามารถแชทกับบอทได้ตามปกติกับ CHATGPT หากบอทรู้สึกว่าจำเป็นต้องใช้วิธีการปลั๊กอินก็จะทำเช่นนั้น
ในสถานการณ์จริงคุณอาจต้องการ จำกัด บอทให้อยู่ในขอบเขตเฉพาะเช่นการจองโต๊ะ (ดูที่พรอมต์ของเกรซสำหรับแรงบันดาลใจ) หรืออาจให้เสียง/บุคลิกภาพที่เป็นเอกลักษณ์ ในการทำเช่นนี้คุณสามารถเพิ่มคำแนะนำในพรอมต์ LLM โดยใช้คุณสมบัติ extra_instructions ใน config.yaml :
horace:
# Any extra instructions to prepend the prompt with
extra_instructions: >-
You are a helpful and polite AI assistant.
# extra_instructions: >-
# In your speech, you impersonate Jedi Master Yoda and crack jokes in response
# to mentions of other Star Wars characters.
ลองใช้ความไม่ลงรอยกันบล็อกโยดาด้านบนเพื่อดูว่าเสียงของ chatbot มีการเปลี่ยนแปลงอย่างไร (อย่าลืมรีสตาร์ทเซิร์ฟเวอร์หลังจากทำการเปลี่ยนแปลงใด ๆ กับการกำหนดค่า)
การทดสอบยังไม่ได้รับการอัปเดตตั้งแต่ฟอร์กจากเกรซ ที่จะได้รับการแก้ไข