################################################################################
# ____ _ ____ _ _ #
# / ___|___ | |__ ___ _ __ ___ / ___| __ _ _ __ __| | |__ _____ __ #
# | | / _ | '_ / _ '__/ _ ___ / _` | '_ / _` | '_ / _ / / #
# | |__| (_) | | | | __/ | | __/ ___) | (_| | | | | (_| | |_) | (_) > < #
# _______/|_| |_|___|_| ___| |____/ __,_|_| |_|__,_|_.__/ ___/_/_ #
# #
# This project is part of Cohere Sandbox, Cohere's Experimental Open Source #
# offering. This project provides a library, tooling, or demo making use of #
# the Cohere Platform. You should expect (self-)documented, high quality code #
# but be warned that this is EXPERIMENTAL. Therefore, also expect rough edges, #
# non-backwards compatible changes, or potential changes in functionality as #
# the library, tool, or demo evolves. Please consider referencing a specific #
# git commit or version if depending upon the project in any mission-critical #
# code as part of your own projects. #
# #
# Please don't hesitate to raise issues or submit pull requests, and thanks #
# for checking out this project! #
# #
################################################################################
ผู้ดูแล: ทีม Cohere ConvAI
โครงการคงอยู่จนถึงอย่างน้อย (ปปปป-ดด-วว): 2023-03-01
สร้าง AI การสนทนานอกเหนือจากโมเดลภาษาขนาดใหญ่ของ Cohere
conversant
conversant
กับ pip conversant
เป็นเฟรมเวิร์กที่กำลังดำเนินการสำหรับการสร้างตัวแทนบทสนทนาที่ปรับแต่งได้ (หรือที่เรียกว่าแชทบอท) ซึ่งสามารถตอบคำถามและสนทนากับผู้ใช้ด้วยบุคลิกแชทบอทที่หลากหลาย conversant
มีเป้าหมายที่จะเป็นแบบโมดูลาร์ ยืดหยุ่น และขยายได้ ดังนั้นคุณจึงสามารถสร้างแชทบอทประเภทใดก็ได้ที่คุณต้องการ!
เราจัดเตรียมบุคลิกที่กำหนดเองหลายแบบให้กับคุณ รวมถึง ? ตัวแทนสนับสนุนลูกค้า ⌚️ ตัวแทนขายนาฬิกา ?? ครูคณิตศาสตร์ และ ? พ่อมดแฟนตาซี สร้างบุคลิกของคุณเองด้วยคำอธิบายและตัวอย่างการสนทนา!
อ่านเพิ่มเติมว่า conversant
เป็นส่วนหนึ่งของ Cohere Sandbox ได้อย่างไรในโพสต์บล็อกการเปิดตัวของเรา
ลอง conversant
กับการสาธิต Streamlit ของเราที่นี่! -
conversant
พร้อมใช้งานบน PyPI และทดสอบบน Python 3.8+ และ Cohere 2.8.0+
pip install conversant
อยากเห็นมันใช้งานจริงก่อนไหม? คุณสามารถใช้ conversant
บนแอป Streamlit ได้โดยไม่ต้องติดตั้งอะไรเลยที่นี่! -
Cohere ใช้ Streamlit เพื่อสร้างแอปพลิเคชันสาธิต หากคุณยังใหม่กับ Streamlit คุณสามารถติดตั้งได้ที่นี่ และอ่านเพิ่มเติมเกี่ยวกับการรันคำสั่ง Streamlit ที่นี่
หากคุณต้องการแก้ไขการสาธิต Streamlit นี้ภายในเครื่อง เราขอแนะนำอย่างยิ่งให้ทำการฟอร์กพื้นที่เก็บข้อมูลนี้ แทนที่จะติดตั้งเป็นไลบรารีจาก PyPI
หากคุณต้องการสร้างอินสแตนซ์สาธิต Streamlit ของคุณเอง คุณจะต้องมี COHERE_API_KEY
ก่อน คุณสามารถสร้างได้โดยไปที่ Dashboard.cohere.ai
หากคุณวางแผนที่จะเรียกใช้แอป Streamlit ในเครื่อง คุณสามารถเพิ่มคีย์ลงใน .streamlit/secrets.toml
:
COHERE_API_KEY = "YOUR_API_KEY_HERE"
เมื่อทำงานภายในเครื่อง Streamlit จะอ่านไฟล์ secrets.toml
และแทรกค่าเหล่านี้ลงในตัวแปรสภาพแวดล้อมโดยไม่แจ้งให้ทราบ หรือคุณสามารถตั้งค่าคีย์ API เป็นตัวแปรสภาพแวดล้อมได้โดยตรงโดยการรันคำสั่งต่อไปนี้จากบรรทัดคำสั่ง:
export COHERE_API_KEY = "YOUR_API_KEY_HERE"
เริ่มแอป Streamlit จากบรรทัดคำสั่งด้วยคำสั่งต่อไปนี้:
streamlit run conversant/demo/streamlit_example.py
หากคุณต้องการสร้างแอป Streamlit ที่โฮสต์แทน ให้เพิ่มคีย์ Cohere API ของคุณไปยัง Streamlit ผ่านการจัดการข้อมูลลับ เพิ่มบรรทัดต่อไปนี้เป็นความลับ:
COHERE_API_KEY = "YOUR_API_KEY_HERE"
เมื่อคุณมีแอป Streamlit เป็นของตัวเองแล้ว คุณสามารถเริ่มทดลองสร้างบุคลิกที่กำหนดเองได้! ตรวจสอบ config.json
สำหรับแต่ละบุคคลในไดเร็กทอรี conversant/personas
คุณจะต้องสร้างโฟลเดอร์ย่อยภายในไดเร็กทอรีนี้ที่สอดคล้องกับตัวตนใหม่ของคุณ และเพิ่มไฟล์ config.json
ตามหมายเหตุ เราขอแนะนำอย่างยิ่งให้ฟอร์กพื้นที่เก็บข้อมูล sandbox-conversant-lib
แทนที่จะติดตั้งเป็นไลบรารีจาก PyPI เมื่อคุณสร้างบุคคลใหม่ ให้ใช้ไดเร็กทอรี personas
ในที่เก็บโคลน โครงสร้างไดเร็กทอรีควรมีลักษณะดังนี้:
conversant/personas
├── fortune-teller
│ └── config.json
└── your-persona-name # new
└── config.json
ไฟล์กำหนดค่าควรมีสิ่งต่อไปนี้:
chatbot_config
:max_context_examples
: ความยาวของประวัติการแชทสำหรับแชทบอทที่จะใช้ในการตอบกลับavatar
: รหัสย่ออิโมจิเสริมหรือ URL ไปยังรูปภาพเป็นอวตารของแชทบอต ค่าเริ่มต้นเป็น ?.client_config
: พารามิเตอร์สำหรับ co.generate()
chat_prompt_config
:preamble
: คำอธิบายของบุคคลexample_separator
: สตริงที่แยกแต่ละตัวอย่างการสนทนาheaders
: ชื่อของ bot
และ user
examples
: ตัวอย่างการสนทนาบางส่วน (ไม่กี่ช็อต) หรือว่างเปล่า (ศูนย์ช็อต) conversant
จะจัดการส่วนที่เหลือ! ตามตัวอย่าง ลองดู fortune-teller/config.json
เมื่อคุณเปิดแอป Streamlit บุคลิกใหม่จะปรากฏในเมนูแบบเลื่อนลง
หากคุณต้องการรันแอปด้วยชุดย่อยของบุคลิกที่กำหนดเอง คุณสามารถสร้างไดเร็กทอรีใหม่ที่มีเฉพาะไดเร็กทอรีที่ต้องการได้ สิ่งนี้คล้ายคลึงกับไดเร็กทอรี conversant/personas
และจำเป็นต้องมีโครงสร้างเดียวกัน:
custom-personas
├── your-first-persona
│ └── config.json
└── your-second-persona
└── config.json
หลังจากสร้างไดเร็กทอรีนี้แล้ว คุณจะต้องบอกแอปว่าจะค้นหาไดเร็กทอรีได้ที่ไหน ในแอปสาธิต Streamlit ( streamlit_example.py
) หนึ่งในบรรทัดแรกอ่านว่า CUSTOM_PERSONA_DIRECTORY = None
เปลี่ยนค่านี้เพื่อระบุไดเร็กทอรีส่วนบุคคลที่ต้องการ เช่น CUSTOM_PERSONA_DIRECTORY = "/Users/yourname/custom-personas"
หากสิ่งนี้ไม่มีการเปลี่ยนแปลง แอปจะใช้ไดเร็กทอรีที่มีบุคคลสาธิต conversant
โดยค่าเริ่มต้น
หากคุณไม่เห็นบุคลิกใหม่ในเมนูแบบเลื่อนลง คุณอาจต้องระบุไดเร็กทอรีส่วนบุคคลที่กำหนดเอง ทำตามคำแนะนำด้านบนเพื่อบอกแอปว่าจะค้นหาบุคคลได้ที่ไหน
คุณยังสามารถแก้ไขบุคลิกในแอป Streamlit ได้!
ด้วย conversant
คุณสามารถสร้างแชทบอตที่ขับเคลื่อนโดยโมเดลภาษาขนาดใหญ่ของ Cohere ได้โดยใช้ข้อมูลโค้ดต่อไปนี้
import cohere
import conversant
co = cohere . Client ( "YOUR_API_KEY_HERE" )
bot = conversant . PromptChatbot . from_persona ( "fantasy-wizard" , client = co )
print ( bot . reply ( "Hello!" ))
>> > "Well met, fair traveller. What bringest thou to mine village?"
คุณยังสามารถกำหนดบุคลิกของคุณเองได้โดยส่งผ่าน ChatPrompt
ของคุณเอง
from conversant . prompts import ChatPrompt
shakespeare_config = {
"preamble" : "Below is a conversation between Shakespeare and a Literature Student." ,
"example_separator" : " n " ,
"headers" : {
"user" : "Literature Student" ,
"bot" : "William Shakespeare" ,
},
"examples" : [
[
{
"user" : "Who are you?" ,
"bot" : "Mine own nameth is Shakespeare, and I speaketh in riddles." ,
},
]
],
}
shakespeare_bot = conversant . PromptChatbot (
client = co , prompt = ChatPrompt . from_dict ( shakespeare_config )
)
print ( shakespeare_bot . reply ( "Hello!" ))
>> > "Greeteth, and welcome. I am Shakespeare, the great poet, dramatist, and playwright."
conversant
ใช้การเติมข้อความให้สมบูรณ์เพื่อกำหนดลักษณะแชทบอทพร้อมคำอธิบายและตัวอย่างบางส่วน พรอมต์จะถูกส่งเป็นอินพุตไปยังจุดสิ้นสุด co.generate()
ของ Cohere สำหรับโมเดลภาษาแบบถดถอยอัตโนมัติเพื่อสร้างข้อความในลักษณะไม่กี่ช็อตจากตัวอย่างและบริบทบทสนทนาปัจจุบัน
ข้อความผู้ใช้และการตอบกลับแชทบอทแต่ละรายการจะถูกผนวกเข้ากับประวัติการแชท เพื่อให้การตอบกลับในอนาคตมีเงื่อนไขตามบริบทการสนทนา ณ เวลานั้น
ในอนาคต เราวางแผนที่จะเพิ่มฟังก์ชันการทำงานสำหรับแชทบอตเพื่อต่อสายดินตามความเป็นจริงโดยใช้ข้อความที่ดึงมาจากแคชเอกสารในเครื่อง
สำหรับข้อมูลเพิ่มเติม โปรดดูส่วนนี้ใน CONTRIBUTORS.md
สามารถดูเอกสารฉบับเต็มได้ที่นี่
หากคุณมีคำถามหรือความคิดเห็น โปรดแจ้งปัญหาหรือติดต่อเราทาง Discord
หากคุณต้องการมีส่วนร่วมในโครงการนี้ โปรดอ่าน CONTRIBUTORS.md
ในพื้นที่เก็บข้อมูลนี้ และลงนามในข้อตกลงใบอนุญาตผู้สนับสนุนก่อนที่จะส่งคำขอดึงข้อมูลใดๆ ลิงก์สำหรับลงนาม Cohere CLA จะถูกสร้างขึ้นในครั้งแรกที่คุณส่งคำขอดึงไปยังพื้นที่เก็บข้อมูล Cohere
นอกเหนือจากแนวทางในการส่งโค้ดไปยังพื้นที่เก็บข้อมูลนี้แล้ว CONTRIBUTORS.md
ยังมีคำแนะนำเพื่อช่วยให้นักพัฒนาเริ่มต้นใช้งาน เช่นเดียวกับแผนผังที่อธิบายวิธีการทำงาน conversant
ภายใต้ประทุน -
conversant
มีใบอนุญาต MIT