Anurag02's picture
Upload 87 files
3b595c8 verified
# The MIT License (MIT)
# Copyright © 2023 Yuma Rao
# Copyright © 2023 RogueTensor
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
# documentation files (the “Software”), to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of
# the Software.
# THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
# THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
from typing import Optional, List
import bittensor as bt
from bitagent.schemas.chat import ChatMessage
from bitagent.schemas.tool import Tool
class QueryTask(bt.Synapse):
"""
A simple BitAgent protocol representation which uses bt.Synapse as its base.
This protocol helps in handling validator request and miner response communication
Attributes:
- messages: a list of ChatMessage (see bitagent/schemas) - will be used for every task except Tool Gen
- tools: list of tools {name, description, arguments } in a List of dicts
- repsonse: string (e.g., tool_name(arg1=value1, arg2=value2))
- hf_run_model_name: string representing the HF model the miner is running
"""
# Required request input, filled by sending dendrite caller.
tools: List[Tool] = []
messages: List[ChatMessage] = []
# Optional request output, filled by recieving axon.
response: str = ""
hf_run_model_name: str = "N/A"
competition_version: Optional[str] = None
class QueryResult(bt.Synapse):
"""
Provide feedback on last task request from validator to inform Miner of performance.
This is a one-way request does not require a response.
Attributes:
- results: string of results to be printed to the logs
"""
results: str
class IsAlive(bt.Synapse):
response: bool = False
# Validator calls this to get the HF model name that this miner hosts on HF
class GetHFModelName(bt.Synapse):
hf_model_name: Optional[str] = None
# Validator calls this to have the miner set the TOP HF model for this miner to run
class SetHFModelName(bt.Synapse):
hf_model_name: str
class GetHFRunModelName(bt.Synapse):
hf_run_model_name: Optional[str] = None