CMDCRAGArcana.Graph.Policy (cmdc_rag_arcana v0.5.0)

Copy Markdown View Source

GraphRAG profile 路由策略。

策略按 tenant、collection、risk level、use case 匹配 profile。没有匹配策略时 默认 plain_rag,因此 GraphRAG 永远不会隐式启用。

Summary

Functions

按 id 查找 profile。

判断 policy 是否匹配当前配置。

构建 policy。

返回当前配置可用 policies。

返回当前配置可用 profiles。

解析当前配置应使用的 Graph profile。

转换为稳定 map。

Types

t()

@type t() :: %CMDCRAGArcana.Graph.Policy{
  collections: [String.t()],
  metadata: map(),
  profile_id: String.t(),
  risk_level: String.t() | atom() | nil,
  tenant_id: String.t() | nil,
  use_case: String.t() | nil
}

Functions

fetch_profile(config, profile_id)

@spec fetch_profile(CMDCRAGArcana.Config.t(), String.t()) ::
  {:ok, CMDCRAGArcana.Graph.Profile.t()} | {:error, term()}

按 id 查找 profile。

matches?(policy, config)

@spec matches?(t(), CMDCRAGArcana.Config.t()) :: boolean()

判断 policy 是否匹配当前配置。

new(policy)

@spec new(t() | keyword() | map()) :: t()

构建 policy。

policies(config)

@spec policies(CMDCRAGArcana.Config.t()) :: [t()]

返回当前配置可用 policies。

profiles(config)

返回当前配置可用 profiles。

resolve_profile(config)

@spec resolve_profile(CMDCRAGArcana.Config.t()) ::
  {:ok, CMDCRAGArcana.Graph.Profile.t()} | {:error, term()}

解析当前配置应使用的 Graph profile。

to_map(policy)

@spec to_map(t()) :: map()

转换为稳定 map。