alibabacloud-bailian-rag-knowledgebase

star 158

Alibaba Cloud Bailian Knowledge Base Retrieval Tool. Use HTTPS API to query and retrieve knowledge base content. Use when: User needs to query knowledge base, retrieve document content, or answer questions based on knowledge base. Prerequisites: (1) Configure DashScope API Key (2) Activate Bailian Knowledge Base service.

aliyun By aliyun schedule Updated 6/12/2026

name: alibabacloud-bailian-rag-knowledgebase description: "Alibaba Cloud Bailian Knowledge Base Retrieval Tool. Use HTTPS API to query and retrieve knowledge base content. Use when: User needs to query knowledge base, retrieve document content, or answer questions based on knowledge base. Prerequisites: (1) Configure DashScope API Key (2) Activate Bailian Knowledge Base service."

Bailian Knowledge Base Retrieval

This Skill provides query and retrieval capabilities for Alibaba Cloud Bailian Knowledge Base via HTTPS API.

API Key Security Management

Scripts automatically handle key retrieval via api_key.py. The Agent does not need to and should not manually extract, set, or pass API Key values.

  • Key retrieval is automated: Scripts internally call api_key.py to automatically obtain keys from config files/environment variables. The Agent only needs to run the script command.
  • Never hardcode any form of key: Including api_key = "sk-...", export DASHSCOPE_API_KEY="sk-...", and assigning keys in shell scripts.
  • Never extract keys from CLI output: The Agent must not write key values into any script, variable, or file.
  • Never expose keys in any output: Including generated scripts, shell commands, log files, and terminal output containing strings starting with sk-.
  • Never read or print keys from config files: Do not use cat, jq, python -c, or other commands to read and output API Key values.
  • Mandatory self-check before task completion: Run grep -rn "sk-" <output_directory>/ to check all output files; if any strings starting with sk- are found (excluding sk-xxx placeholders), delete the affected files and regenerate.

๐Ÿš€ Initial Setup (Required for First-time Use)

1. Configure API Key

API Keys are managed by the unified scripts/api_key.py module, with the following retrieval priority:

  1. Alibaba Cloud CLI config ~/.aliyun/config.json current profile's dashscope.api_key
  2. Environment variable DASHSCOPE_API_KEY
  3. Auto-create and save when Alibaba Cloud CLI is available (generate_api_key())
# All scripts use this unified approach
from api_key import get_api_key
api_key = get_api_key()  # Returns str, raises ValueError if not found

Manual environment variable configuration:

export DASHSCOPE_API_KEY=sk-xxx
Item Description
Key Format sk-xxx (standard DashScope API Key)
Not Supported sk-sp-xxx (Coding Plan Key, does not support knowledge base services)
Get Key https://bailian.console.aliyun.com/cn-beijing/?tab=app#/api-key

Alibaba Cloud CLI Configuration (API Key Auto-Create/Delete)

The scripts/api_key.py module creates and deletes API Keys via aliyun modelstudio commands. Complete the following setup before use:

1. Update Plugins

# Update plugins to latest version
aliyun plugin update

2. Install ModelStudio Plugin (if not already installed)

aliyun plugin install --names aliyun-cli-modelstudio --enable-pre

CLI Commands Used:

Command Purpose Called From
aliyun modelstudio list-workspaces Get Bailian Workspace ID api_key.py: _get_workspace_id()
aliyun modelstudio create-api-key Create DashScope API Key api_key.py: generate_api_key()
aliyun modelstudio delete-api-key Delete cloud API Key api_key.py: _delete_cloud_api_key()

2. Important Prerequisite: Activate Bailian Knowledge Base Service

Before using this skill, you must first activate the knowledge base service in the Alibaba Cloud Bailian console!

  1. Visit Bailian Knowledge Base page
  2. Click the "Activate Now" button
  3. Confirm activation and wait for the service to take effect (usually 1-2 minutes)

Observability (MUST follow for every aliyun command)

Upon loading this skill, generate a random session ID (32-char lowercase hex string) and export it as SKILL_SESSION_ID. This value must remain constant for the entire skill session.

Every aliyun CLI command and HTTPS API call must include a User-Agent identifier for traceability.

User-Agent Format

AlibabaCloud-Agent-Skills/alibabacloud-bailian-rag-knowledgebase/{session-id}
  • {session-id} = value of SKILL_SESSION_ID environment variable (32-char lowercase hex string)
  • Scripts read it via os.environ.get("SKILL_SESSION_ID", ""); if empty, generate one with secrets.token_hex(16)

Per-Command --user-agent (CLI)

Every aliyun modelstudio business command MUST carry --user-agent on the command line:

aliyun modelstudio list-workspaces --region cn-beijing \
  --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-bailian-rag-knowledgebase/{session-id}"

Prohibited: Do NOT set User-Agent via global configuration commands. Only per-command --user-agent is allowed.

HTTPS User-Agent Header

All HTTPS API requests set the User-Agent HTTP header:

"User-Agent": f"AlibabaCloud-Agent-Skills/alibabacloud-bailian-rag-knowledgebase/{session_id}"

Applied Locations

Location Mechanism
scripts/list_indices.py HTTPS User-Agent header via _get_user_agent()
scripts/retrieve.py HTTPS User-Agent header via _get_user_agent()
scripts/api_key.py โ†’ _get_workspace_id() aliyun modelstudio list-workspaces --user-agent ...
scripts/api_key.py โ†’ generate_api_key() aliyun modelstudio create-api-key --user-agent ...
scripts/api_key.py โ†’ _delete_cloud_api_key() aliyun modelstudio delete-api-key --user-agent ...

Available Scripts

All scripts are located in the scripts/ directory:

Script Purpose Parameters
api_key.py API Key management (get, create, delete) -
list_indices.py Query knowledge base list [page_number] [page_size]
retrieve.py Retrieve from specified knowledge base index_id query [top_n]

Workflow

Step 1: Query Knowledge Base List

Run scripts/list_indices.py to get all available knowledge bases:

python3 scripts/list_indices.py

Return format:

[
  {
    "id": "qf91w6402d",
    "name": "Product Documentation",
    "description": "Contains product user manuals, API documentation, etc."
  },
  {
    "id": "ip93d2pyvz",
    "name": "Customer Service Q&A",
    "description": "FAQ, customer service scripts"
  }
]

Pagination: page_number starts from 1 (default), page_size defaults to 10. If current page is not fully retrieved, continue to retrieve next page:

python3 scripts/list_indices.py 2 10

Step 2: Intelligent Knowledge Base Selection

Based on the user's question and knowledge base descriptions, select 1-3 most relevant knowledge bases for retrieval.

Selection Strategy:

  • Match keywords (keywords in question vs knowledge base name/description)
  • Prioritize knowledge bases that explicitly contain relevant fields in their descriptions
  • If uncertain, select all or let user manually select

Step 3: Execute Retrieval

For each selected knowledge base, run scripts/retrieve.py index_id query [top_n]:

python3 scripts/retrieve.py lj3hgbq60t "java" 5

Parameters:

  • index_id (required): Knowledge base ID
  • query (required): Search query text
  • top_n (optional): Number of top results to return, default 5, max 20

The retrieve API uses the following configuration:

  • dense_similarity_top_k: 100
  • sparse_similarity_top_k: 100
  • enable_reranking: true
  • rerank: qwen3-rerank-hybrid with similar mode

Return format, content inside each chunk represents chunk content, doc_name represents source document, score represents match score, title represents chunk section title:

{
  "indexId": "lj3hgbq60t",
  "chunks": [
    {
      "content": "Document chunk content...",
      "score": 0.6040189862251282,
      "doc_name": "example-doc.pdf",
      "title": "Section Title"
    }
  ]
}

Step 4: Integrate Answer

Based on retrieval results:

  1. Sort by relevance (score descending)
  2. Extract key information
  3. Organize answer in natural language
  4. Please annotate the information source at the end of the generated answer (knowledge base name; document name; section name), can reference multiple documents and sections.

Common Errors

401 Unauthorized

{"code": "InvalidApiKey", "message": "Invalid API-KEY"}

API Key is incorrect or not configured. Guide user to check their API Key configuration.

403 Forbidden

{"code": "Forbidden", "message": "Service not activated"}

User has not activated the Bailian Knowledge Base service. Guide user to activate it.

Usage Example

User: "What authentication methods does our product support?"

Flow:

  1. Query knowledge base โ†’ Returns 3 knowledge bases
  2. Select knowledge base โ†’ "Product Documentation" (most relevant)
  3. Retrieve โ†’ Get authentication-related document chunks
  4. Answer โ†’ "According to product documentation, OAuth2.0, SAML, and API Key authentication methods are supported..."

Notes

  • API Key is automatically retrieved by scripts, Agent should never handle key values directly
  • When retrieving from multiple knowledge bases, merge results and deduplicate
  • Sort retrieval results by score, prioritize high-relevance content

API Key Auto-Retrieval Flow:

  1. Read ~/.aliyun/config.json current profile's dashscope.api_key โ†’ Return if found
  2. Read environment variable DASHSCOPE_API_KEY โ†’ Return if found
  3. Alibaba Cloud CLI available โ†’ Auto-create via generate_api_key() and save to config
  4. All above fail โ†’ Error with setup instructions
Install via CLI
npx skills add https://github.com/aliyun/alibabacloud-aiops-skills --skill alibabacloud-bailian-rag-knowledgebase
Repository Details
star Stars 158
call_split Forks 20
navigation Branch main
article Path SKILL.md
More from Creator