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:

Knowledge

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.