Added Wikipedia API wrapper

GetWikiPegeText:
- Fetches a Wikipedia wiki page

WikipediaTool:
- The base for this module, Initialise a Wiki instance and add the Wikipedia API endpoints
This commit is contained in:
2025-06-08 21:44:04 +02:00
parent a602d30901
commit 796271443c
3 changed files with 79 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
plugins {
id 'java'
}
group = 'me.zacharias'
version = '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
testImplementation platform('org.junit:junit-bom:5.10.0')
testImplementation 'org.junit.jupiter:junit-jupiter'
implementation("io.github.fastily:jwiki:1.11.0")
implementation project(":Core")
}
test {
useJUnitPlatform()
}

View File

@@ -0,0 +1,33 @@
package me.zacharias.neuro.dock.wikipedia;
import io.github.fastily.jwiki.core.Wiki;
import me.zacharias.chat.ollama.OllamaFunctionArgument;
import me.zacharias.chat.ollama.OllamaFunctionTool;
import me.zacharias.chat.ollama.OllamaPerameter;
import me.zacharias.chat.ollama.OllamaToolRespnce;
public class GetWikiPageText extends OllamaFunctionTool {
Wiki wiki = WikipediaTool.wiki;
@Override
public String name() {
return "get_wiki_page_text";
}
@Override
public String description() {
return "Gets the text of a Wikipedia page by its title.";
}
@Override
public OllamaPerameter parameters() {
return OllamaPerameter.builder()
.addProperty("title", OllamaPerameter.OllamaPerameterBuilder.Type.STRING, "The title of the Wikipedia page to retrieve text from.", true)
.build();
}
@Override
public OllamaToolRespnce function(OllamaFunctionArgument... args) {
return new OllamaToolRespnce(name(), wiki.getPageText((String) args[0].value()));
}
}

View File

@@ -0,0 +1,23 @@
package me.zacharias.neuro.dock.wikipedia;
import io.github.fastily.jwiki.core.Wiki;
import me.zacharias.chat.core.Core;
import me.zacharias.chat.ollama.OllamaFunctionTools;
public class WikipediaTool {
private OllamaFunctionTools wikipediaToolsInstance;
public static Wiki wiki = new Wiki.Builder()
//.withDomain("en.wikipedia.org")
.build();
public WikipediaTool() {
this.wikipediaToolsInstance = OllamaFunctionTools.builder()
.addTool(new GetWikiPageText(), Core.Source.INTERNAL)
.build();
}
public OllamaFunctionTools getWikipediaToolsInstance() {
return wikipediaToolsInstance;
}
}