Skip to main content

knowledge-base

Personal knowledge base with SQLite + FTS5. Index contacts, documents, ChatGPT exports, and WhatsApp data. Query everything instantly with full-text search. Use for contact lookups, conversation history search, document retrieval, and building persistent memory systems.

소스 정보

저장소
Kernel8901/ai-agent-skills-classification
최근 소스 활동
2026년 4월 4일 15:26
감지된 SKILL.md 언어
영어
스타
5
포크
1

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
7 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
knowledge-base
version
1.0.0
description
Personal knowledge base with SQLite + FTS5. Index contacts, documents, ChatGPT exports, and WhatsApp data. Query everything instantly with full-text search. Use for contact lookups, conversation history search, document retrieval, and building persistent memory systems.
homepage
https://github.com/openclaw/openclaw
repository
https://github.com/openclaw/openclaw
# Knowledge Base A local SQLite database for indexing and querying personal data with full-text search. ## What It Indexes | Source | Data | |--------|------| | **WhatsApp** | Contacts, groups, memberships (from `whatsapp-contacts-full.json`) | | **Documents** | All markdown files in `memory/` | | **ChatGPT** | Conversation exports (from `chatgpt-export/`) | | **Contacts** | VCF exports from phone | ## Quick Start ```bash # Initialize database (first time) python3 skills/knowledge-base/scripts/init_db.py # Query python3 skills/knowledge-base/scripts/query.py search "term" python3 skills/knowledge-base/scripts/query.py contact "+34659..." python3 skills/knowledge-base/scripts/query.py stats ``` ## Commands | Command | Description | |---------|-------------| | `search <term>` | Full-text search across all content | | `contact <phone\|name>` | Look up contact + their groups | | `groups <phone>` | List groups a phone is in | | `members <group>` | List members of a group | | `chatgpt <term>` | Search ChatGPT message history | | `doc <term>` | Search documents only | | `stats` | Database statistics | | `sql <query>` | Run raw SQL | ## Data Sources ### WhatsApp Contacts Export via the WhatsApp skill's contact extraction (produces `bank/whatsapp-contacts-full.json`). ### ChatGPT Export Use the chatgpt-exporter skill or manual export. Place JSON in `chatgpt-export/` directory. Supported formats: - `{ "conversations": [...] }` — custom format with `id`, `title`, `created`, `messages` - Native ChatGPT export format with `mapping` structure ### VCF Contacts Export from phone (Android: Contacts → Settings → Export). Run: ```bash python3 skills/knowledge-base/scripts/import_vcf.py path/to/contacts.vcf ``` ### Documents Automatically indexes all `*.md` files in `memory/` directory. ## Database Location `db/jarvis.db` in workspace root. ## Re-indexing To refresh the database with new data: ```bash rm db/jarvis.db python3 skills/knowledge-base/scripts/init_db.py ``` Or for incremental updates: ```bash python3 skills/knowledge-base/scripts/sync.py # (if available) ``` ## Schema See `references/schema.md` for full table definitions. Key tables: - `contacts` — phone, name, source - `wa_groups` — WhatsApp group metadata - `wa_memberships` — who is in which group - `documents` — markdown files with FTS - `chatgpt_conversations` — conversation metadata - `chatgpt_messages` — individual messages with FTS ## Example Queries ```sql -- Find all groups someone is in SELECT g.name FROM wa_groups g JOIN wa_memberships m ON m.group_jid = g.jid WHERE m.phone = '+34659418105'; -- Search ChatGPT for a topic SELECT c.title, m.content FROM chatgpt_fts f JOIN chatgpt_messages m ON m.conversation_id = f.conv_id JOIN chatgpt_conversations c ON c.id = m.conversation_id WHERE chatgpt_fts MATCH 'spirituality'; -- Find contacts in a specific group SELECT c.phone, c.name FROM contacts c JOIN wa_memberships m ON m.phone = c.phone JOIN wa_groups g ON g.jid = m.group_jid WHERE g.name LIKE '%Family%'; ``` ## WhatsApp Group Allowlist Management The database enables easy management of WhatsApp group allowlists for security. ### Find a group's JID ```bash python3 skills/knowledge-base/scripts/query.py sql \ "SELECT jid, name, participant_count FROM wa_groups WHERE name LIKE '%Family%'" ``` ### List all allowed groups (cross-reference with config) ```bash python3 skills/knowledge-base/scripts/query.py sql \ "SELECT name, participant_count FROM wa_groups WHERE jid IN ( '34609572036-1370260813@g.us', '34659418105-1561917865@g.us' -- add your allowlist JIDs here )" ``` ### Add a group to allowlist 1. Find the JID: `query.py sql "SELECT jid, name FROM wa_groups WHERE name LIKE '%GroupName%'"` 2. Add to config: `channels.whatsapp.groupAllowFrom` 3. Restart gateway ### Security rationale - `groupPolicy: "open"` = any group can trigger the bot (risky with large public groups) - `groupPolicy: "allowlist"` = only specified groups can interact (recommended) - Reduces prompt injection attack surface by ~95% ## Tips 1. **No contact names?** WhatsApp only provides phone numbers. Import your phone's VCF to add names. 2. **Search not finding?** FTS5 uses word boundaries. Use `*` for prefix matching: `Bas*` matches "Bashar". 3. **Large exports?** ChatGPT exports can be 50MB+. First import may take 30-60 seconds.
GitHub에서 보기