Difference between revisions of "Osgeo-knowledge-base"
Ominiverdi (talk | contribs) |
|||
| (4 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| − | OSGeo Knowledge Base | + | = OSGeo Knowledge Base = |
| − | Automated | + | Automated OSGeo Wiki, osgeo.org WordPress, and Planet OSGeo content sync and processing service running on [[Gallery_Container]]. |
| − | + | It is used by the [[LLM-based_Chat_Assistant|Matrix chat assistant]] to answer OSGeo-specific questions. | |
| − | + | * GitHub: https://github.com/ominiverdi/osgeo-knowledge | |
| + | * Local path: <code>/home/ominiverdi/github/osgeo-knowledge</code> | ||
| + | * Database: PostgreSQL on [[Gallery_Container|Gallery]] | ||
| − | + | == What can users ask? == | |
| − | '''Contact:''' ominiverdi | + | Examples: |
| + | |||
| + | <pre> | ||
| + | !oc search the OSGeo wiki for QGIS | ||
| + | !oc find content about the incubation committee | ||
| + | !oc get the QGIS wiki page | ||
| + | !oc search entities for QGIS | ||
| + | !oc what relationships are known for QGIS? | ||
| + | !oc show OSGeo knowledge base statistics | ||
| + | </pre> | ||
| + | |||
| + | == Scheduled jobs == | ||
| + | |||
| + | Verified in the <code>ominiverdi</code> crontab on <code>osgeo7-gallery</code>: | ||
| + | |||
| + | <pre> | ||
| + | 15 */6 * * * wiki_sync.py --days 2 | ||
| + | 0 3 * * * wordpress_sync.py --days 14 | ||
| + | 30 */4 * * * planet_sync.py --all | ||
| + | 0 * * * * process_chunks.py --limit 100 | ||
| + | </pre> | ||
| + | |||
| + | Summary: | ||
| + | |||
| + | * Wiki sync: every 6 hours | ||
| + | * WordPress sync: daily | ||
| + | * Planet OSGeo sync: every 4 hours | ||
| + | * Chunk processing: hourly | ||
| + | |||
| + | == MCP server == | ||
| + | |||
| + | The MCP tools are provided by the <code>osgeo-knowledge</code> MCP server: | ||
| + | |||
| + | <pre> | ||
| + | /home/ominiverdi/github/osgeo-knowledge/venv/bin/python -m osgeo_knowledge.servers.mcp | ||
| + | </pre> | ||
| + | |||
| + | In the [[LLM-based_Chat_Assistant|Matrix chat bridge]], these tools appear with the <code>osgeo-knowledge_</code> prefix. | ||
| + | |||
| + | == MCP tools and examples == | ||
| + | |||
| + | === <code>osgeo-knowledge_search_wiki</code> === | ||
| + | |||
| + | Searches LLM-generated summaries, keywords, and page titles. | ||
| + | |||
| + | Example visible tool call: | ||
| + | |||
| + | <pre> | ||
| + | query=QGIS, source=wiki, limit=2 [osgeo-knowledge_search_wiki] | ||
| + | </pre> | ||
| + | |||
| + | Live result examples included: | ||
| + | |||
| + | * <code>QGIS LATAM</code> | ||
| + | * <code>QGIS-user-meeting-fr-2015</code> | ||
| + | |||
| + | === <code>osgeo-knowledge_search_content</code> === | ||
| + | |||
| + | Searches raw page content chunks and returns highlighted matches. | ||
| + | |||
| + | Example visible tool call: | ||
| + | |||
| + | <pre> | ||
| + | query=incubation committee, source=wiki, limit=2 [osgeo-knowledge_search_content] | ||
| + | </pre> | ||
| + | |||
| + | Live result examples included: | ||
| + | |||
| + | * <code>Incubation Committee</code> | ||
| + | * highlighted matches for <code>Incubation</code> and <code>Committee</code> | ||
| + | |||
| + | === <code>osgeo-knowledge_search_entities</code> === | ||
| + | |||
| + | Searches extracted entities using fuzzy matching. | ||
| + | |||
| + | Example visible tool call: | ||
| + | |||
| + | <pre> | ||
| + | query=QGIS, entity_type=project, limit=3 [osgeo-knowledge_search_entities] | ||
| + | </pre> | ||
| + | |||
| + | Live result example: | ||
| + | |||
| + | <pre> | ||
| + | QGIS (project) | ||
| + | </pre> | ||
| + | |||
| + | Entity types currently include: | ||
| + | |||
| + | <pre> | ||
| + | person | ||
| + | organization | ||
| + | topic | ||
| + | location | ||
| + | meeting | ||
| + | conference | ||
| + | sprint | ||
| + | project | ||
| + | year | ||
| + | software | ||
| + | </pre> | ||
| + | |||
| + | === <code>osgeo-knowledge_get_entity_relationships</code> === | ||
| + | |||
| + | Queries the OSGeo knowledge graph. | ||
| + | |||
| + | Example visible tool call: | ||
| + | |||
| + | <pre> | ||
| + | entity_name=QGIS, limit=5 [osgeo-knowledge_get_entity_relationships] | ||
| + | </pre> | ||
| + | |||
| + | Live relationship examples included: | ||
| + | |||
| + | <pre> | ||
| + | QGIS --[is_project_of]--> OSGeo | ||
| + | Alexander Bruy --[contributed_to]--> QGIS | ||
| + | Vicky Vergara --[contributed_to]--> QGIS | ||
| + | </pre> | ||
| + | |||
| + | === <code>osgeo-knowledge_get_page</code> === | ||
| + | |||
| + | Retrieves a page by exact or fuzzy title match. | ||
| + | |||
| + | Example visible tool call: | ||
| + | |||
| + | <pre> | ||
| + | title=QGIS [osgeo-knowledge_get_page] | ||
| + | </pre> | ||
| + | |||
| + | Live result included the QGIS wiki page URL, summary, keywords, and page content. | ||
| + | |||
| + | === <code>osgeo-knowledge_get_wiki_stats</code> === | ||
| + | |||
| + | Shows database statistics and sync status. | ||
| + | |||
| + | Example visible tool call: | ||
| + | |||
| + | <pre> | ||
| + | [osgeo-knowledge_get_wiki_stats] | ||
| + | </pre> | ||
| + | |||
| + | Live statistics at last check: | ||
| + | |||
| + | <pre> | ||
| + | Pages: 5784 | ||
| + | Content chunks: 57568 | ||
| + | Categories: 327 | ||
| + | Entities: 20528 | ||
| + | Relationships: 17401 | ||
| + | Extensions: 5468 | ||
| + | </pre> | ||
| + | |||
| + | == Related services == | ||
| + | |||
| + | * [[LLM-based Chat Assistant]] | ||
| + | * [[OSGeo-Knowledge-Embedding-Server]] | ||
| + | |||
| + | '''Contact:''' ominiverdi, Lorenzo Becchi, or SAC channel. | ||
[[Category:Services]] | [[Category:Services]] | ||
[[Category:AI-Services]] | [[Category:AI-Services]] | ||
Latest revision as of 11:06, 5 June 2026
OSGeo Knowledge Base
Automated OSGeo Wiki, osgeo.org WordPress, and Planet OSGeo content sync and processing service running on Gallery_Container.
It is used by the Matrix chat assistant to answer OSGeo-specific questions.
- GitHub: https://github.com/ominiverdi/osgeo-knowledge
- Local path:
/home/ominiverdi/github/osgeo-knowledge - Database: PostgreSQL on Gallery
What can users ask?
Examples:
!oc search the OSGeo wiki for QGIS !oc find content about the incubation committee !oc get the QGIS wiki page !oc search entities for QGIS !oc what relationships are known for QGIS? !oc show OSGeo knowledge base statistics
Scheduled jobs
Verified in the ominiverdi crontab on osgeo7-gallery:
15 */6 * * * wiki_sync.py --days 2 0 3 * * * wordpress_sync.py --days 14 30 */4 * * * planet_sync.py --all 0 * * * * process_chunks.py --limit 100
Summary:
- Wiki sync: every 6 hours
- WordPress sync: daily
- Planet OSGeo sync: every 4 hours
- Chunk processing: hourly
MCP server
The MCP tools are provided by the osgeo-knowledge MCP server:
/home/ominiverdi/github/osgeo-knowledge/venv/bin/python -m osgeo_knowledge.servers.mcp
In the Matrix chat bridge, these tools appear with the osgeo-knowledge_ prefix.
MCP tools and examples
osgeo-knowledge_search_wiki
Searches LLM-generated summaries, keywords, and page titles.
Example visible tool call:
query=QGIS, source=wiki, limit=2 [osgeo-knowledge_search_wiki]
Live result examples included:
QGIS LATAMQGIS-user-meeting-fr-2015
osgeo-knowledge_search_content
Searches raw page content chunks and returns highlighted matches.
Example visible tool call:
query=incubation committee, source=wiki, limit=2 [osgeo-knowledge_search_content]
Live result examples included:
Incubation Committee- highlighted matches for
IncubationandCommittee
osgeo-knowledge_search_entities
Searches extracted entities using fuzzy matching.
Example visible tool call:
query=QGIS, entity_type=project, limit=3 [osgeo-knowledge_search_entities]
Live result example:
QGIS (project)
Entity types currently include:
person organization topic location meeting conference sprint project year software
osgeo-knowledge_get_entity_relationships
Queries the OSGeo knowledge graph.
Example visible tool call:
entity_name=QGIS, limit=5 [osgeo-knowledge_get_entity_relationships]
Live relationship examples included:
QGIS --[is_project_of]--> OSGeo Alexander Bruy --[contributed_to]--> QGIS Vicky Vergara --[contributed_to]--> QGIS
osgeo-knowledge_get_page
Retrieves a page by exact or fuzzy title match.
Example visible tool call:
title=QGIS [osgeo-knowledge_get_page]
Live result included the QGIS wiki page URL, summary, keywords, and page content.
osgeo-knowledge_get_wiki_stats
Shows database statistics and sync status.
Example visible tool call:
[osgeo-knowledge_get_wiki_stats]
Live statistics at last check:
Pages: 5784 Content chunks: 57568 Categories: 327 Entities: 20528 Relationships: 17401 Extensions: 5468
Related services
Contact: ominiverdi, Lorenzo Becchi, or SAC channel.