agentscope.rag.knowledge_bank module
Knowledge bank for making Knowledge objects easier to use
- class KnowledgeBank(configs: dict | str | list | None = None, new_knowledge_types: type[Knowledge] | list | None = None)[source]
Bases:
object
KnowledgeBank enables 1) provide an easy and fast way to initialize the Knowledge object; 2) make Knowledge object reusable and sharable for multiple agents.
- add_data_as_knowledge(knowledge_id: str, knowledge_type: str, knowledge_config: dict | None = None, **kwargs: Any) None [source]
Transform data in a directory to be ready to work with RAG.
- Parameters:
knowledge_id (str) – User-defined unique id for the knowledge
knowledge_type (str) – Type of the knowledge to register, e.g., “llamaindex_knowledge”
knowledge_config (dict) –
For LlamaIndexKnowledge (knowledge_type=”llamaindex_knowledge”) the following are required: emb_model_config_name (str):
Name of the embedding model config
- model_config_name (Optional[str]):
Name of the LLM config for potential post-processing or query rewrite
- data_dirs_and_types (dict[str, list[str]]):
Dictionary of data paths (keys) to the data types (file extensions) for knowledgebase (e.g., [“.md”, “.py”, “.html”])
- knowledge_config (optional[dict]):
Complete indexing configuration, used for more advanced applications. Users can customize - loader, - transformations, - … Examples can refer to ../examples/conversation_with_RAG_agents/
kwargs (Any) – Additional keyword arguments to initialize knowledge.
- equip(agent: AgentBase, knowledge_id_list: list[str] | None = None, duplicate: bool = False) None [source]
Equip the agent with the knowledge by knowledge ids.
- Parameters:
agent (AgentBase) – The agent to be equipped with knowledge
knowledge_id_list (list[str]) – The list of knowledge ids to be equipped with the agent
duplicate (bool) – Whether to deepcopy the knowledge object
TODO: to accommodate with distributed setting
- get_knowledge(knowledge_id: str, duplicate: bool = False) Knowledge [source]
Get a Knowledge object from the knowledge bank.
- Parameters:
knowledge_id (str) – Unique id for the Knowledge object
duplicate (bool) – Whether return a copy of the Knowledge object.
- Returns:
The Knowledge object defined with Llama-index
- Return type:
- register_knowledge_type(knowledge_base_class: Type[Knowledge], exist_ok: bool = True) None [source]
Add a new knowledge base class to the knowledge bank
- Parameters:
knowledge_base_class (Type[Knowledge]) – The knowledge class to be registered, which must inherit from Knowledge.
exist_ok (bool) – Whether to overwrite the existing knowledge base class with the same name.