Pustaka ini memberi Anda cara mudah untuk membuat dan menjalankan Agen Hive.
Bergabunglah dengan komunitas Discord kami untuk mendapatkan dukungan dan diskusi.
Anda dapat langsung menginstal dari pip:
pip install git+https://github.com/hivenetwork-ai/hive-agent-py.git@main
Atau tambahkan ke file persyaratan.txt Anda:
hive-agent @ git+https://github.com/hivenetwork-ai/hive-agent-py@main
Untuk menginstal dengan dependensi web3 opsional, Anda dapat menentukannya sebagai berikut:
pip install git+https://github.com/hivenetwork-ai/hive-agent-py.git@main#egg=hive-agent[web3]
Atau tambahkan ke file persyaratan.txt Anda:
hive-agent[web3] @ git+https://github.com/hivenetwork-ai/hive-agent-py@main
Anda perlu menentukan OPENAI_API_KEY
dalam file .env di direktori ini.
Buat salinan file .env.example dan ganti namanya menjadi .env .
Untuk menggunakan file konfigurasi dengan HiveAgent
Anda, ikuti langkah-langkah berikut:
Buat File Konfigurasi :
hive_config.toml
) di direktori proyek Anda. (Lihat hive_config_example.toml).Buat Konteks SDK :
from hive_agent . sdk_context import SDKContext
sdk_context = SDKContext ( config_path = "./hive_config.toml" )
Tentukan Jalur Konfigurasi :
HiveAgent
, berikan jalur relatif atau absolut ke file konfigurasi Anda. from hive_agent import HiveAgent
import os
def get_config_path ( filename ):
return os . path . abspath ( os . path . join ( os . path . dirname ( __file__ ), filename ))
simple_agent = HiveAgent (
name = "Simple Agent" ,
functions = [],
instruction = "your instructions for this agent's goal" ,
sdk_context = sdk_context
#config_path=get_config_path("hive_config.toml") # ./hive_config.toml works too
)
Pertama impor kelas HiveAgent
:
from hive_agent import HiveAgent
Muat variabel lingkungan Anda:
from dotenv import load_dotenv
load_dotenv ()
Kemudian buat instance HiveAgent:
my_agent = HiveAgent (
name = "my_agent" ,
functions = [],
instruction = "your instructions for this agent's goal" ,
)
Kemudian, jalankan agen Anda:
my_agent . run ()
Terakhir, panggil endpoint API /api/v1/chat
, untuk melihat hasilnya:
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?" } ] } '
Anda dapat membuat alat yang membantu agen Anda menangani tugas yang lebih kompleks. Berikut ini contohnya:
import os
from typing import Optional , Dict
from web3 import Web3
from hive_agent import HiveAgent
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 = HiveAgent (
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.
"""
Anda dapat membuat sekumpulan agen untuk berkolaborasi dalam tugas-tugas kompleks. Berikut ini contoh cara menyiapkan dan menggunakan gerombolan:
from hive_agent . swarm import HiveSwarm
from hive_agent . agent import HiveAgent
from hive_agent . sdk_context import SDKContext
from hive_agent . llms . utils import llm_from_config
from hive_agent . utils import tools_from_funcs
from hive_agent . llms . claude import ClaudeLLM
import asyncio
# Create SDK Context
sdk_context = SDKContext ( config_path = "./hive_config_example.toml" )
def save_report ():
return "save_item_to_csv"
def search_on_web ():
return "search_on_web"
#You can use the default config using default_config or the config of a specific agent by using the get_config method.
llm = llm_from_config ( sdk_context . get_config ( "target_agent_id" ))
tools = tools_from_funcs ([ search_on_web ])
claude = ClaudeLLM ( llm = llm , tools = tools )
# Create individual agents
agent1 = HiveAgent ( name = "Research Agent" , instruction = "Conduct research on given topics" , sdk_context = sdk_context , functions = [ search_on_web ], llm = claude )
agent2 = HiveAgent ( name = "Analysis Agent" , instruction = "Analyze data and provide insights" , sdk_context = sdk_context , functions = [ save_report ])
agent3 = HiveAgent ( name = "Report Agent" , instruction = "Compile findings into a report" , sdk_context = sdk_context , functions = [])
# Create swarm
swarm = HiveSwarm ( name = "Research Team" , description = "A swarm of agents that collaborate on research tasks" ,
instruction = "Be helpful and collaborative" , functions = [], agents = [ agent1 , agent2 , agent3 ], sdk_context = sdk_context )
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 ())
Anda dapat menambahkan alat retriever untuk membuat penyematan vektor dan mengambil informasi semantik. Ini akan membuat indeks vektor untuk setiap dokumen pdf di bawah folder 'hive-agent-data/files/user' dan dapat memfilter file dengan parameter yang diperlukan_exts.
import os
from typing import Optional , Dict
from web3 import Web3
from hive_agent import HiveAgent
from dotenv import load_dotenv
load_dotenv ()
if __name__ == "__main__" :
my_agent = HiveAgent (
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?" } ] }'
```
"""
Pengguna agen/swarm Anda mungkin tidak selalu terbiasa dengan kemampuannya. Memberikan contoh petunjuk memungkinkan mereka menjelajahi apa yang telah Anda buat. Berikut cara menambahkan contoh perintah yang dapat mereka gunakan sebelum berkomitmen menggunakan agen/swarm Anda.
Di file hive_config.toml Anda, buat entri tingkat atas bernama [sample_prompts]
dan tambahkan array baru ke prompts
utama seperti ini:
[ 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? "
]
Lihat ./hive_config_example.toml untuk contoh file konfigurasi.
Tutorial selengkapnya dapat dilihat di ./tutorial.md.
Jika Anda ingin berkontribusi pada basis kode, Anda perlu menyiapkan lingkungan pengembang Anda. Ikuti langkah-langkah berikut:
OPENAI_API_KEY
dari 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
File laporan tests/htmlcov/index.html
Buka http://localhost:8000/docs dengan browser Anda untuk melihat UI Swagger dari API.
https://swarmzero.ai