Graph RAG working I think

This commit is contained in:
Cyber MacGeddon 2025-04-22 00:27:39 +01:00
parent 8c38dc30ff
commit 6be7b30633
5 changed files with 31 additions and 24 deletions

View file

@ -29,13 +29,15 @@ class PromptClient(RequestResponse):
async def extract_definitions(self, text, timeout=600):
return await self.prompt(
id = "extract-definitions",
variables = { "text": text }
variables = { "text": text },
timeout = timeout,
)
async def extract_relationships(self, text, timeout=600):
return await self.prompt(
id = "extract-relationships",
variables = { "text": text }
variables = { "text": text },
timeout = timeout,
)
async def kg_prompt(self, query, kg, timeout=600):
@ -47,7 +49,8 @@ class PromptClient(RequestResponse):
{ "s": v[0], "p": v[1], "o": v[2] }
for v in kg
]
}
},
timeout = timeout,
)
class PromptClientSpec(RequestResponseSpec):

View file

@ -1,7 +1,13 @@
from . request_response_spec import RequestResponse, RequestResponseSpec
from .. schema import TriplesQueryRequest, TriplesQueryResponse, Value
from .. knowledge import Uri, Literal, Triple
from .. knowledge import Uri, Literal
class Triple:
def __init__(self, s, p, o):
self.s = s
self.p = p
self.o = o
def to_value(x):
if x.is_uri: return Uri(x.value)
@ -34,11 +40,13 @@ class TriplesClient(RequestResponse):
if resp.error:
raise RuntimeError(resp.error.message)
return [
triples = [
Triple(to_value(v.s), to_value(v.p), to_value(v.o))
for v in resp.triples
]
return triples
class TriplesClientSpec(RequestResponseSpec):
def __init__(
self, request_name, response_name,

View file

@ -23,10 +23,6 @@ URL = 'https://schema.org/url'
IDENTIFIER = 'https://schema.org/identifier'
KEYWORD = 'https://schema.org/keywords'
class Triple:
def __init__(self, s, p, o):
self.s, self.p, self.o = s, p, o
class Uri(str):
def is_uri(self): return True
def is_literal(self): return False