Basic client to interact with a mech
Project description
mech-client
Basic client to interact with a mech
Warning
This is a hacky alpha version of the client - don't rely on it as production software.
Installation
pip install mech-client
Then, set a websocket endpoint for Gnosis RPC like so:
export WEBSOCKET_ENDPOINT=<YOUR ENDPOINT>
CLI:
Usage: mechx [OPTIONS] COMMAND [ARGS]...
Command-line tool for interacting with mechs.
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
interact Interact with a mech specifying a prompt and tool.
prompt-to-ipfs Upload a prompt and tool to IPFS as metadata.
push-to-ipfs Upload a file to IPFS.
Usage:
First, create a private key in file ethereum_private_key.txt
with this command:
aea generate-key ethereum
Ensure the private key carries funds on Gnosis Chain.
Second, run the following command to instruct the mech with <prompt>
and <agent_id>
:
mechx interact <prompt> <agent_id>
The command will prompt you with all available tools for the agent and you can select which tool you want to use
Select prompting tool
|--------------------------------------------------|
| ID | Tool |
|--------------------------------------------------|
| 0 | openai-text-davinci-002 |
| ...| ... |
|--------------------------------------------------|
Tool ID >
If you are aware about the tools that are provided by an agent you can directly provide tool as a command line argument
mechx interact <prompt> <agent_id> --tool <tool>
If you already have a funded key file on locally you can provide path the key using --key
flag.
mechx interact <prompt> <agent_id> --key <key_file>
Example output:
mechx interact "write a short poem" 3 --key ~/gnosis_key --tool openai-text-davinci-003
Prompt uploaded: https://gateway.autonolas.tech/ipfs/f01701220ad773628911d12e28f005e3f249e990d684e5dba07542259195602f9afed30bf
Transaction sent: https://gnosisscan.io/tx/0x0d9209e32e965a820b9e80accfcd71ea3b1174b9758dd251c2e627a60ec426a5
Created on-chain request with ID 111240237160304797537720810617416341148235899500021985333360197012735240803849
Data arrived: https://gateway.autonolas.tech/ipfs/bafybeifk2h35ncszlze7t64rpblfo45rezc33xzbya3cjiyumtaioyat3e
Data from agent: {'requestId': 111240237160304797537720810617416341148235899500021985333360197012735240803849, 'result': "\n\nI am brave and I'm strong\nI don't hide away my song\nI am here and I'm proud\nMy voice will be heard loud!"}
By default the client will wait for data to arrive from on-chain using the websocket subscription and off-chain using the ACN and show you the result which arrives first. You can specify the type of confirmation you want using --confirm
flag like this
mechx interact "write a short poem" 3 --key ~/gnosis_key --tool openai-text-davinci-003 --confirm on-chain
Prompt uploaded: https://gateway.autonolas.tech/ipfs/f017012205e37f761221a8ba4005e91c36b94153e9432b8888ff2acae6b101dd5a5de6768
Transaction sent: https://gnosisscan.io/tx/0xf1ef63f617717bbb8deb09699af99aa39f10155d33796de2fd7eb61c9c1458b6
Created on-chain request with ID 81653153529124597849081567361606842861262371002932574194580478443414142139857
Data arrived: https://gateway.autonolas.tech/ipfs/f0170122069b55e077430a00f3cbc3b069347e901396f978ff160eb2b0a947872be1848b7
Data from agent: {'requestId': 81653153529124597849081567361606842861262371002932574194580478443414142139857, 'result': "\n\nA summer breeze, so sweet,\nA gentle reminder of summer's heat.\nThe sky so blue, no cloud in sight,\nA perfect day, a wondrous sight."}
Release guide:
- Bump versions in
pyproject.toml
andmech_client/__init__.py
poetry lock
rm -rf dist
autonomy packages sync --update-packages
make eject-packages
- then
poetry publish --build --username=<username> --password=<password>
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mech_client-0.2.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ce5e50ce707a9f9f332ae08fafe6e76743985e20d6ffbd822f047341267766b |
|
MD5 | 8fc4e8fbb919c123b2ead5e472ff6d26 |
|
BLAKE2b-256 | 0d165b956c635b7c694fbd97f22e68100c4a4c1d8bc2f95262a79e1703818d59 |