1.Can use aios_shell from new jarvis telgram bot right now

2.Update MVP plan2.md
3.Refactor function support
This commit is contained in:
Liu Zhicong
2023-09-10 12:01:45 -07:00
parent 15dd600fdb
commit 6b45cb9570
7 changed files with 782 additions and 11 deletions
+45 -8
View File
@@ -1,25 +1,62 @@
from abc import ABC, abstractmethod
from typing import Dict
class AIFunction:
def __init__(self) -> None:
self.intro : str = None
def load_from_config(self,config:dict) -> bool:
@abstractmethod
def get_name(self) -> str:
"""
return the name of the function (should be snake case)
"""
pass
@abstractmethod
def get_description(self) -> str:
"""
return a detailed description of what the function does
"""
pass
@abstractmethod
def get_parameters(self) -> Dict:
"""
Return the list of parameters to execute this function in the form of
JSON schema as specified in the OpenAI documentation:
https://platform.openai.com/docs/api-reference/chat/create#chat/create-parameters
"""
pass
@abstractmethod
def execute(self, **kwargs) -> Dict:
"""
Execute the function and return a JSON serializable dict.
The parameters are passed in the form of kwargs
"""
pass
@abstractmethod
def is_local(self) -> bool:
"""
is this function call need network?
"""
pass
@abstractmethod
def is_in_zone(self) -> bool:
pass
def is_readyonly(self) -> bool:
"""
is this function call in Lan?
"""
pass
def get_intro(self) -> str:
return self.intro
async def execute(self):
@abstractmethod
def is_ready_only(self) -> bool:
pass
#def load_from_config(self,config:dict) -> bool:
# pass
# call chain is a combination of ai_function,group of ai_function.
class CallChain:
def __init__(self) -> None: