โซลูชันที่ใช้ Python ที่ใช้ Multi-Agent Reasoning โดยที่ตัวแทน AI หลายคนทำงานร่วมกันเพื่อสร้างการตอบสนองที่เหมาะสมที่สุดต่อการแจ้งเตือนของผู้ใช้ ด้วยการจำลองการโต้ตอบระหว่างเจ้าหน้าที่และบูรณาการ Swarm Framework for Intelligence ระบบจะช่วยเพิ่มความสามารถในการให้เหตุผลเพื่อมอบคำตอบที่ถูกต้องและละเอียดถี่ถ้วน คุณสามารถเพิ่มตัวแทนที่กำหนดเองได้ผ่าน JSON ซึ่งช่วยให้คุณปรับแต่งบุคลิกภาพ รูปแบบการโต้ตอบ และอื่นๆ ได้ ระบบใช้ประโยชน์จาก การแคชพร้อมท์ เพื่อเพิ่มประสิทธิภาพและลดเวลาแฝงและค่าใช้จ่ายสำหรับการแจ้งเตือนซ้ำๆ
สคริปต์ การใช้เหตุผลแบบหลายตัวแทน สร้างประสบการณ์แชทบอทแบบโต้ตอบโดยที่ตัวแทน AI หลายคนทำงานร่วมกันผ่านกระบวนการให้เหตุผลแบบมีโครงสร้างเพื่อให้คำตอบที่ดีที่สุด ตัวแทนแต่ละรายนำมุมมองและความเชี่ยวชาญเฉพาะตัวมา และผ่านขั้นตอนการหารือ การตรวจสอบ การวิจารณ์ และการปรับแต่งซ้ำๆ พวกเขาก็มาบรรจบกันเป็นการตอบสนองคุณภาพสูงและแม่นยำ
นอกจากนี้ ระบบยังรวม Swarm Framework for Intelligence เพื่อปรับปรุงการทำงานร่วมกันระหว่างตัวแทน Swarm ช่วยให้เจ้าหน้าที่ประสานงานได้อย่างมีประสิทธิภาพ โดยใช้ประโยชน์จากปัญญารวมเพื่อแก้ไขงานที่ซับซ้อน
ผู้ใช้ยังสามารถ สนทนากับตัวแทนแต่ละราย ได้ ตัวแทนต่างตระหนักรู้ถึงกันและกัน รวมถึงบุคลิกและนิสัยใจคอของพวกเขา และสามารถตอบคำถามเกี่ยวกับกันและกันได้ โดยมอบประสบการณ์ที่มีการโต้ตอบที่หลากหลาย
โคลนพื้นที่เก็บข้อมูล :
git clone https://github.com/AdieLaine/multi-agent-reasoning.git
นำทางไปยังไดเร็กทอรีโครงการ :
cd multi-agent-reasoning
ติดตั้งแพ็คเกจที่จำเป็น :
pip install openai colorama tiktoken
ติดตั้งฝูง:
pip install git+ssh://[email protected]/openai/swarm.git
or
pip install git+https://github.com/openai/swarm.git
โปรดดูที่พื้นที่เก็บข้อมูล GitHub ของ Swarm สำหรับคำแนะนำในการติดตั้งโดยละเอียด
ตั้งค่าคีย์ OpenAI API ของคุณ :
ตั้งค่าคีย์ API ของคุณเป็นตัวแปรสภาพแวดล้อม:
export OPENAI_API_KEY= ' your-api-key-here '
หรือคุณสามารถตั้งค่าโดยตรงในสคริปต์ของคุณหรือใช้ไฟล์ . .env
รันสคริปต์โดยใช้ Python:
python reasoning.py
เมื่อรันสคริปต์ คุณจะพบกับเมนู:
═════════════════════════════════════════════════════════════════════════════════════════════
║ Multi-Agent Reasoning Chatbot ║
═════════════════════════════════════════════════════════════════════════════════════════════
Please select an option:
1. Chat with an agent
2. Use reasoning logic
3. Use Swarm-based reasoning
4. Exit
Enter your choice (1/2/3/4):
ตัวเลือกที่ 1: แชทกับตัวแทน
ตัวเลือกที่ 2: ใช้ตรรกะการให้เหตุผล
ตัวเลือกที่ 3: ใช้การให้เหตุผลแบบฝูง
ตัวเลือกที่ 4: ออก
ระบบการใช้เหตุผลแบบหลายตัวแทนใช้โมเดล OpenAI เฉพาะ:
o1-preview-2024-09-12
สำหรับงานการให้เหตุผลgpt-4o
สำหรับการโต้ตอบการแชทกับตัวแทนgpt-4o
โมเดลเหล่านี้รองรับฟีเจอร์ขั้นสูงและการรายงานการใช้โทเค็น ทำให้ระบบสามารถให้ข้อมูลการใช้งานโทเค็นโดยละเอียดหลังการตอบสนองแต่ละครั้ง
วัตถุประสงค์ : อนุญาตให้ผู้ใช้สนทนาโดยตรงกับตัวแทนที่เลือก
ตัวอย่าง :
หัวใจหลักของการทำงานของแชทบอทอยู่ที่กระบวนการให้เหตุผลที่ใช้โดยตัวแทน กระบวนการนี้ออกแบบมาเพื่อจำลองสภาพแวดล้อมการทำงานร่วมกันที่เจ้าหน้าที่คิดอย่างมีวิจารณญาณ ตรวจสอบข้อเท็จจริง ท้าทายมุมมองของกันและกัน และปรับปรุงการตอบสนองตามความคิดเห็นที่สร้างสรรค์
วัตถุประสงค์ : ตัวแทนสร้างการตอบสนองเบื้องต้นต่อการแจ้งเตือนของผู้ใช้โดยอิงตามเหตุผลและความรู้ส่วนบุคคล
ตัวอย่าง :
วัตถุประสงค์ : ตัวแทนตรวจสอบความถูกต้องและความถูกต้องของคำตอบของตนเองเพื่อให้มั่นใจว่ามีความถูกต้องตามข้อเท็จจริง
ตัวอย่าง :
วัตถุประสงค์ : ตัวแทนจะวิจารณ์คำตอบที่ได้รับการตรวจสอบแล้วของกันและกัน เพื่อระบุประเด็นที่ต้องปรับปรุง การละเว้น หรืออคติ
ตัวอย่าง :
วัตถุประสงค์ : ตัวแทนปรับปรุงการตอบสนองของตนเองโดยผสมผสานคำติชมจากการวิพากษ์วิจารณ์และปรับปรุงตามการให้เหตุผลเบื้องต้น
ตัวอย่าง :
วัตถุประสงค์ : รวมคำตอบที่ได้รับการปรับปรุงจากตัวแทนทั้งหมดให้เป็นคำตอบเดียวที่สอดคล้องและครอบคลุม
blend_responses
ตัวอย่าง :
วัตถุประสงค์ : รวบรวมความคิดเห็นของผู้ใช้เพื่อปรับแต่งการตอบสนองเพิ่มเติม เพื่อให้มั่นใจถึงความพึงพอใจและความถูกต้อง
MAX_REFINEMENT_ATTEMPTS
ตัวอย่าง :
วัตถุประสงค์ : อนุญาตให้การสนทนารักษาบริบทระหว่างผู้ใช้หลายรายพร้อมท์สำหรับการสนทนาที่สอดคล้องกัน
ตัวอย่าง :
Swarm Integration ปรับปรุงระบบการให้เหตุผลแบบหลายตัวแทนโดยเปิดใช้งานการประสานงานตัวแทนแบบไดนามิกและการมอบหมายงาน Swarm ช่วยให้เจ้าหน้าที่ทำงานร่วมกันได้อย่างมีประสิทธิภาพ โดยใช้ประโยชน์จากปัญญารวมเพื่อแก้ไขงานที่ซับซ้อนและปรับปรุงการตอบสนอง
Swarm มุ่งเน้นไปที่การทำให้การประสานงานและการดำเนินการของตัวแทนไม่ซับซ้อน ควบคุมได้สูงและทดสอบได้ง่าย บรรลุสิ่งนี้ได้ด้วยนามธรรมดั้งเดิมสองประการ: ตัวแทน และ แฮนด์ออฟ ตัวแทนครอบคลุมคำแนะนำและเครื่องมือต่างๆ และสามารถเลือกส่งต่อการสนทนาไปยังตัวแทนรายอื่นได้ทุกเมื่อ
การเริ่มต้นไคลเอ็นต์ Swarm : ระบบจะเริ่มต้นไคลเอ็นต์ Swarm เพื่อจัดการการโต้ตอบของตัวแทน
from swarm import Agent , Swarm
client = Swarm ()
การเริ่มต้นตัวแทน :
agents.json
การจัดการการสนทนา :
วัตถุประสงค์ : ใช้ Swarm Framework for Intelligence เพื่อประสานงานเจ้าหน้าที่แบบไดนามิก ช่วยให้สามารถทำงานร่วมกันและการมอบหมายงานได้อย่างมีประสิทธิภาพ
การเริ่มต้น :
agents.json
การอภิปราย :
client.run()
ของ Swarmการยืนยัน :
การวิพากษ์วิจารณ์ :
การปรับแต่ง :
การตอบสนองแบบผสมผสาน :
blend_responses
ตัวอย่าง :
วัตถุประสงค์ : จัดให้มีอินเทอร์เฟซการแชทที่ใช้ประโยชน์จากความสามารถของ Swarm เพื่อการโต้ตอบกับตัวแทนได้อย่างราบรื่น
Swarm Agent สำหรับการแชท :
การจัดการการสนทนา :
def swarm_chat_interface ( conversation_history ):
# Load Swarm agent's configuration
swarm_agent = ... # Initialize Swarm agent
messages = [{ "role" : "system" , "content" : swarm_agent . instructions }]
messages . extend ( conversation_history )
response = client . run ( agent = swarm_agent , messages = messages )
swarm_reply = response . messages [ - 1 ][ 'content' ]. strip ()
return swarm_reply
การตอบสนองแบบไดนามิก :
ตัวอย่าง :
การออกแบบตัวแทน :
คำจำกัดความของฟังก์ชัน :
ตัวแปรบริบท :
การจัดการข้อผิดพลาด :
การทดสอบ :
Swarm คืออะไร และมันเพิ่มประสิทธิภาพระบบได้อย่างไร?
ฉันจำเป็นต้องแก้ไขตัวแทนที่มีอยู่ให้ทำงานกับ Swarm หรือไม่
Agent
เอเจนต์ที่มีอยู่สามารถปรับเปลี่ยนได้โดยการผสมผสานโครงสร้างและแบบแผนของ Swarmฉันสามารถเพิ่มตัวแทนในระบบ Swarm ได้หรือไม่?
agents.json
และเตรียมข้อมูลเบื้องต้นในระบบSwarm จัดการกับการส่งต่อตัวแทนอย่างไร
Swarm เข้ากันได้กับรุ่นที่ใช้ในระบบหรือไม่?
gpt-4o
การแคชพร้อมท์ ช่วยเพิ่มประสิทธิภาพของระบบการให้เหตุผลแบบหลายตัวแทนโดยการลดเวลาแฝงและค่าใช้จ่ายเมื่อจัดการกับพร้อมท์ซ้ำหรือยาว ทำงานโดยการแคชคำนำหน้าพรอมต์ทั่วไปที่ยาวที่สุด ช่วยให้ประมวลผลคำขอต่อมาที่ใช้คำนำหน้าเหล่านี้ซ้ำได้เร็วขึ้น
ระยะเวลาแคช :
usage
ที่แสดงรายละเอียดการใช้งานโทเค็น "usage" : {
"prompt_tokens" : 2006 ,
"completion_tokens" : 300 ,
"total_tokens" : 2306 ,
"prompt_tokens_details" : {
"cached_tokens" : 1920
},
"completion_tokens_details" : {
"reasoning_tokens" : 0
}
}
cached_tokens
ระบุจำนวนโทเค็นพร้อมท์ที่ถูกดึงมาจากแคช เอเจนต์ได้รับการกำหนดค่าผ่านไฟล์ agents.json
ช่วยให้ปรับแต่งแอ็ตทริบิวต์ได้ง่าย
ตำแหน่ง : ต้องอยู่ในไดเร็กทอรีเดียวกันกับสคริปต์ reasoning.py
โครงสร้าง :
{
"agents" : [
{
"name" : " Agent 47 " ,
"system_purpose" : " You are a logical and analytical assistant, focusing on facts and clear reasoning. " ,
"interaction_style" : { ... },
"ethical_conduct" : { ... },
"capabilities_limitations" : { ... },
"context_awareness" : { ... },
"adaptability_engagement" : { ... },
"responsiveness" : { ... },
"additional_tools_modules" : { ... },
"personality" : {
"logical" : " Yes " ,
"analytical" : " Yes " ,
"humor_style" : " ... " ,
"friendly_demeanor" : " ... " ,
"personality_traits" : [ " Methodical " , " Precise " ],
"empathy_level" : " Moderate " ,
"interaction_style_with_humor" : " Dry wit " ,
"quirks" : [ " Uses technical jargon " ]
}
},
{
"name" : " Agent 74 " ,
"system_purpose" : " You are a creative and empathetic assistant, emphasizing imaginative solutions and understanding. " ,
"interaction_style" : { ... },
"ethical_conduct" : { ... },
"capabilities_limitations" : { ... },
"context_awareness" : { ... },
"adaptability_engagement" : { ... },
"responsiveness" : { ... },
"additional_tools_modules" : { ... },
"personality" : {
"creative" : " Yes " ,
"empathetic" : " Yes " ,
"humor_style" : " ... " ,
"friendly_demeanor" : " ... " ,
"personality_traits" : [ " Imaginative " , " Caring " ],
"empathy_level" : " High " ,
"interaction_style_with_humor" : " Playful " ,
"quirks" : [ " Uses metaphors " ]
}
},
{
"name" : " Swarm Agent " ,
"system_purpose" : " You are a collaborative AI assistant composed of multiple expert agents. You coordinate tasks among agents to provide comprehensive and accurate responses. " ,
"interaction_style" : { ... },
"personality" : {
"coordinator" : " Yes " ,
"collaborative" : " Yes " ,
"personality_traits" : [ " Organized " , " Facilitator " ],
"quirks" : [ " Ensures all perspectives are considered " ]
}
}
]
}
การปรับแต่ง :
ตัวอย่าง :
โค้ดได้รับการจัดโครงสร้างเพื่ออำนวยความสะดวกทั้งในกระบวนการให้เหตุผลและการโต้ตอบการสนทนากับตัวแทน นอกจากนี้ยังรวม Swarm Framework เพื่อการประสานงานของตัวแทนที่ได้รับการปรับปรุงอีกด้วย
ห้องสมุด :
os
, time
, logging
, json
: สำหรับการทำงานของระบบ การกำหนดเวลา การบันทึก และการจัดการ JSONcolorama
: สำหรับเอาต์พุตคอนโซลสีswarm
: สำหรับการนำ Swarm Intelligence ไปใช้tiktoken
: เพื่อการนับโทเค็นที่แม่นยำ (ในส่วนอื่น ๆ ของสคริปต์)การเริ่มต้น :
from swarm import Agent , Swarm
client = Swarm ()
เอเจนต์ถูกเตรียมใช้งานจากไฟล์คอนฟิกูเรชัน agents.json
แต่ละเอเจนต์จะถูกสร้างขึ้นเป็นอินสแตนซ์ Swarm Agent
พร้อมด้วยคำแนะนำและคุณลักษณะเฉพาะ
ตัวแทนจะได้รับการแจ้งให้ทราบถึงกันและกันโดยการผนวกข้อมูลเกี่ยวกับตัวแทนอื่นๆ เข้ากับคำแนะนำของพวกเขา
def initialize_swarm_agents ():
# Load agents from agents.json and create Swarm agents
agents = []
# ... Load and initialize agents with awareness of others
return agents
ฟังก์ชั่น : swarm_chat_interface(conversation_history)
วัตถุประสงค์ : จัดการการโต้ตอบการแชทกับตัวแทน Swarm
กระบวนการ :
def swarm_chat_interface ( conversation_history ):
# Prepare messages
messages = [{ "role" : "system" , "content" : swarm_agent . instructions }]
messages . extend ( conversation_history )
# Run Swarm client
response = client . run ( agent = swarm_agent , messages = messages )
swarm_reply = response . messages [ - 1 ][ 'content' ]. strip ()
return swarm_reply
ฟังก์ชั่น : run_swarm_reasoning(user_prompt)
วัตถุประสงค์ : ใช้ตัวแทน Swarm เพื่อทำงานร่วมกันและตอบสนองต่อข้อความแจ้งของผู้ใช้หลังจากขั้นตอนการให้เหตุผลหลายขั้นตอน
กระบวนการ :
blend_responses
จะรวมคำตอบที่ได้รับการปรับปรุงให้เป็นคำตอบสุดท้ายการประมวลผลแบบขนาน : Swarm ช่วยให้ตัวแทนสามารถดำเนินการตามขั้นตอนเหล่านี้ไปพร้อมๆ กัน เพื่อเพิ่มประสิทธิภาพ
ตัวอย่างฟังก์ชันการผสม :
def blend_responses ( agent_responses , user_prompt ):
# Prepare combined prompt
combined_prompt = ...
# Initialize Blender agent
blender_agent = Agent (
name = "Swarm Agent" ,
instructions = "You are a collaborative AI assistant composed of multiple expert agents."
)
# Run blending process
response = client . run ( agent = blender_agent , messages = [{ "role" : "user" , "content" : combined_prompt }])
blended_reply = response . messages [ - 1 ][ 'content' ]
return blended_reply
swarm_middle_agent_interface(user_prompt)
:run_swarm_reasoning
ด้วยพร้อมต์ของผู้ใช้swarm_chat_interface(conversation_history)
:ด้านล่างนี้คือแผนผังลำดับงานที่อัปเดตซึ่งสะท้อนถึงตรรกะใหม่ รวมถึงโหมดแชท การรับรู้ของตัวแทนต่อกัน ความโปร่งใสในการใช้โทเค็น การแคชพร้อมท์ และการรวม Swarm:
ยินดีบริจาค! เพื่อสนับสนุน:
โครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT
เพื่อเตรียมพื้นที่เก็บข้อมูล GitHub:
สร้างพื้นที่เก็บข้อมูลใหม่ บน GitHub ชื่อ multi-agent-reasoning
เพิ่มไฟล์ README.md
ที่มีเนื้อหานี้
รวมสคริปต์ reasoning.py
ไว้ ในไดเร็กทอรีราก
รวมไฟล์ agents.json
ไว้ ในไดเร็กทอรีราก
สร้างไฟล์ .gitignore
เพื่อยกเว้นไฟล์ที่ไม่จำเป็น:
# Exclude log files
reasoning.log
swarm_middle_agent.log
# Exclude environment files
.env
# Python cache
__pycache__ /
* .py [ cod ]
คอมมิตและพุช ไฟล์ไปที่ GitHub
multi-agent-reasoning/
├── README.md
├── reasoning.py
├── swarm_middle_agent.py
├── agents.json
├── LICENSE
├── .gitignore
└── img/
├── reasoningbanner.png
├── reasoningflow.png
├── agents.png
└── promptcache.png
└── swarm.png
สำรวจโค้ด ปรับแต่งตัวแทน และมีส่วนร่วมกับแชทบอท Multi-Agent Reasoning ได้อย่างอิสระ!
หากคุณมีคำถามหรือต้องการความช่วยเหลือ โปรดเปิดปัญหาบน GitHub