ไลบรารีนี้มอบวิธีง่ายๆ ให้กับคุณในการสร้างและเรียกใช้ AI Agents และ Swarms of Agents
ผู้ให้บริการ LLM ที่รองรับ:
คุณสามารถติดตั้งโดยตรงด้วย pip:
pip install swarmzero
หรือสามารถติดตั้งโดยตรงกับบทกวี:
poetry add swarmzero
หรือเพิ่มลงในไฟล์ needs.txt ของคุณ:
...
swarmzero==x.y.z
...
คุณต้องระบุ OPENAI_API_KEY
ในไฟล์ .env ในไดเร็กทอรีนี้
ทำสำเนาของไฟล์ .env.example และเปลี่ยนชื่อเป็น .env
หากต้องการใช้ไฟล์การกำหนดค่ากับ Agent
ของคุณ ให้ทำตามขั้นตอนเหล่านี้:
สร้างไฟล์การกำหนดค่า :
swarmzero_config.toml
) ในไดเรกทอรีโครงการของคุณ (ดูswarmzero_config_example.toml)สร้างบริบท SDK :
from swarmzero . sdk_context import SDKContext
sdk_context = SDKContext ( config_path = "./swarmzero_config.toml" )
ระบุเส้นทางการกำหนดค่า :
Agent
ให้ระบุเส้นทางแบบสัมพัทธ์หรือแบบสัมบูรณ์ไปยังไฟล์การกำหนดค่าของคุณ from swarmzero import Agent
simple_agent = Agent (
name = "Simple Agent" ,
functions = [],
instruction = "your instructions for this agent's goal" ,
# sdk_context=sdk_context
config_path = "./swarmzero_config.toml"
)
สามารถดูตัวอย่างโดยละเอียดเพิ่มเติมได้ที่https://github.com/swarmzero/examples
ขั้นแรกให้นำเข้าคลาส Agent
:
from swarmzero import Agent
โหลดตัวแปรสภาพแวดล้อมของคุณ:
from dotenv import load_dotenv
load_dotenv ()
จากนั้นสร้างอินสแตนซ์ตัวแทน:
my_agent = Agent (
name = "my_agent" ,
functions = [],
instruction = "your instructions for this agent's goal" ,
)
จากนั้น เรียกใช้ตัวแทนของคุณ:
my_agent . run ()
สุดท้าย ให้เรียกจุดสิ้นสุด API /api/v1/chat
เพื่อดูผลลัพธ์:
curl --request POST
--url http://localhost:8000/api/v1/chat
--header ' Content-Type: multipart/form-data '
--form ' user_id="test" '
--form ' session_id="test" '
--form ' chat_data={ "messages": [ { "role": "user", "content": "Who is Satoshi Nakamoto?" } ] } '
คุณสามารถสร้างเครื่องมือที่ช่วยให้ตัวแทนของคุณจัดการงานที่ซับซ้อนมากขึ้นได้ นี่คือตัวอย่าง:
import os
from typing import Optional , Dict
from web3 import Web3
from swarmzero import Agent
from dotenv import load_dotenv
load_dotenv ()
rpc_url = os . getenv ( "RPC_URL" ) # add an ETH Mainnet HTTP RPC URL to your `.env` file
def get_transaction_receipt ( transaction_hash : str ) -> Optional [ Dict ]:
"""
Fetches the receipt of a specified transaction on the Ethereum blockchain and returns it as a dictionary.
:param transaction_hash: The hash of the transaction to fetch the receipt for.
:return: A dictionary containing the transaction receipt details, or None if the transaction cannot be found.
"""
web3 = Web3 ( Web3 . HTTPProvider ( rpc_url ))
if not web3 . is_connected ():
print ( "unable to connect to Ethereum" )
return None
try :
transaction_receipt = web3 . eth . get_transaction_receipt ( transaction_hash )
return dict ( transaction_receipt )
except Exception as e :
print ( f"an error occurred: { e } " )
return None
if __name__ == "__main__" :
my_agent = Agent (
name = "my_agent" ,
functions = [ get_transaction_receipt ]
)
my_agent . run ()
"""
[1] send a request:
```
curl --request POST
--url http://localhost:8000/api/v1/chat
--header 'Content-Type: multipart/form-data'
--form 'user_id="test"'
--form 'session_id="test"'
--form 'chat_data={ "messages": [ { "role": "user", "content": "Who is the sender of this transaction - 0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060" } ] }'
```
[2] result:
The address that initiated the transaction with hash 0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060 is 0xA1E4380A3B1f749673E270229993eE55F35663b4.
"""
คุณสามารถสร้างตัวแทนจำนวนมากเพื่อทำงานร่วมกันในงานที่ซับซ้อนได้ ต่อไปนี้เป็นตัวอย่างวิธีการตั้งค่าและใช้งาน Swarm:
from swarmzero . swarm import Swarm
from swarmzero . agent import Agent
from swarmzero . sdk_context import SDKContext
import asyncio
# Create SDK Context
sdk_context = SDKContext ( config_path = "./swarmzero_config_example.toml" )
def save_report ():
return "save_item_to_csv"
def search_on_web ():
return "search_on_web"
# Create individual agents
agent1 = Agent ( name = "Research Agent" , instruction = "Conduct research on given topics" , sdk_context = sdk_context ,
functions = [ search_on_web ])
agent2 = Agent ( name = "Analysis Agent" , instruction = "Analyze data and provide insights" , sdk_context = sdk_context ,
functions = [ save_report ])
agent3 = Agent ( name = "Report Agent" , instruction = "Compile findings into a report" , sdk_context = sdk_context , functions = [])
# Create swarm
swarm = Swarm ( name = "Research Team" , description = "A swarm of agents that collaborate on research tasks" ,
instruction = "Be helpful and collaborative" , functions = [], agents = [ agent1 , agent2 , agent3 ])
async def chat_with_swarm ():
return await swarm . chat ( "Can you analyze the following data: [1, 2, 3, 4, 5]" )
if __name__ == "__main__" :
asyncio . run ( chat_with_swarm ())
คุณสามารถเพิ่มเครื่องมือดึงข้อมูลเพื่อสร้างการฝังเวกเตอร์และดึงข้อมูลความหมายได้ มันจะสร้างดัชนีเวกเตอร์สำหรับเอกสาร PDF ทุกฉบับภายใต้โฟลเดอร์ 'swarmzero-data/files/user' และสามารถกรองไฟล์ด้วยพารามิเตอร์ required_exts
from swarmzero import Agent
from dotenv import load_dotenv
load_dotenv ()
if __name__ == "__main__" :
my_agent = Agent (
name = "retrieve-test" ,
functions = [],
retrieve = True ,
required_exts = [ '.md' ],
retrieval_tool = 'chroma'
)
my_agent . run ()
"""
[1] send a request:
```
curl --request POST
--url http://localhost:8000/api/v1/chat
--header 'Content-Type: multipart/form-data'
--form 'user_id="test"'
--form 'session_id="test"'
--form 'chat_data={ "messages": [ { "role": "user", "content": "Can you summarise the documents?" } ] }'
```
"""
ผู้ใช้ตัวแทน/ฝูงของคุณอาจไม่คุ้นเคยกับความสามารถของมันเสมอไป การแจ้งตัวอย่างช่วยให้พวกเขาสามารถสำรวจสิ่งที่คุณสร้างขึ้นได้ ต่อไปนี้เป็นวิธีเพิ่มตัวอย่างพร้อมท์ที่พวกเขาสามารถใช้ได้ก่อนตัดสินใจใช้ตัวแทน/ฝูงของคุณ
ในไฟล์ swarmzero_config.toml ของคุณ ให้สร้างรายการ ระดับบนสุด ชื่อ [sample_prompts]
และเพิ่มอาร์เรย์ใหม่ให้กับคีย์ prompts
ดังนี้:
[ sample_prompts ]
prompts = [
" What can you help me do? " ,
" Which tools do you have access to? " ,
" What are your capabilities? "
]
[ target_agent_id ]
model = " gpt-3.5-turbo "
timeout = 15
environment = " dev "
enable_multi_modal = true
ollama_server_url = ' http://123.456.78.90:11434 '
sample_prompts = [
" What can you help me do? " ,
" Which tools do you have access to? " ,
" What are your capabilities? "
]
ดู ./swarmzero_config_example.toml สำหรับตัวอย่างไฟล์การกำหนดค่า
หากคุณต้องการสนับสนุนโค้ดเบส คุณจะต้องตั้งค่าสภาพแวดล้อมการพัฒนาของคุณ ทำตามขั้นตอนเหล่านี้:
OPENAI_API_KEY
จาก OpenAIcurl -sSL https://install.python-poetry.org | python3 -
export PATH= " $HOME /.local/bin: $PATH "
poetry shell
poetry install --no-root
tests/
: cd tests/
pytest
pytest tests/path/to/test_module.py
pytest -v
pytest -s
pip install coverage pytest-cov
pytest --cov --cov-report=html
รายงานไฟล์ tests/htmlcov/index.html
เปิด http://localhost:8000/docs ด้วยเบราว์เซอร์ของคุณเพื่อดู Swagger UI ของ API
https://swarmzero.ai