Breakout store queries (#8)

- Break out store queries, so not locked into a Milvus/Cassandra backend
- Break out prompting into a separate module, so that prompts can be tailored to other LLMs
- Jsonnet used to generate docker compose templates
- Version to 0.6.0
This commit is contained in:
cybermaggedon 2024-08-13 17:30:59 +01:00 committed by GitHub
parent a9a0e28f49
commit a3ea1301d6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
70 changed files with 4286 additions and 2394 deletions

22
tests/test-graph-embeddings Executable file
View file

@ -0,0 +1,22 @@
#!/usr/bin/env python3
import pulsar
from trustgraph.graph_embeddings_client import GraphEmbeddingsClient
from trustgraph.embeddings_client import EmbeddingsClient
ec = EmbeddingsClient(pulsar_host="pulsar://localhost:6650")
vectors = ec.request("What caused the space shuttle to explode?")
print(vectors)
llm = GraphEmbeddingsClient(pulsar_host="pulsar://localhost:6650")
limit=10
resp = llm.request(vectors, limit)
print("Response...")
for val in resp:
print(val.value)

View file

@ -6,8 +6,8 @@ from trustgraph.graph_rag_client import GraphRagClient
rag = GraphRagClient(pulsar_host="pulsar://localhost:6650")
query="""
Identify any facts which provide an explanation of the explosion of the
space shuttle rocket boosters"""
This knowledge graph describes the Space Shuttle disaster.
Present 20 facts which are present in the knowledge graph."""
resp = rag.request(query)

18
tests/test-lang-definition Executable file
View file

@ -0,0 +1,18 @@
#!/usr/bin/env python3
import pulsar
from trustgraph.prompt_client import PromptClient
p = PromptClient(pulsar_host="pulsar://localhost:6650")
chunk = """I noticed a cat in my garden. It is a four-legged animal
which is a mammal and can be tame or wild. I wonder if it will be friends
with me. I think the cat's name is Fred and it has 4 legs"""
resp = p.request_definitions(
chunk=chunk,
)
for d in resp:
print(d.name, ":", d.definition)

72
tests/test-lang-kg-prompt Executable file
View file

@ -0,0 +1,72 @@
#!/usr/bin/env python3
import pulsar
from trustgraph.prompt_client import PromptClient
p = PromptClient(pulsar_host="pulsar://localhost:6650")
facts = [
("accident", "evoked", "a wide range of deeply felt public responses"),
("Space Shuttle concept", "had", "genesis"),
("Commission", "had", "a mandate to develop recommendations for corrective or other action based upon the Commission's findings and determinations"),
("Commission", "established", "teams of persons"),
("Space Shuttle Challenger", "http://www.w3.org/2004/02/skos/core#definition", "A space shuttle that was destroyed in an accident during mission 51-L."),
("The mid fuselage", "contains", "the payload bay"),
("Volume I", "contains", "Chapter IX"),
("accident", "resulted in", "firm national resolve that those men and women be forever enshrined in the annals of American heroes"),
("Volume I", "contains", "Chapter IV"),
("Volume I", "contains", "Appendix A"),
("Volume I", "contains", "Appendix B"),
("Volume I", "contains", "The Staff"),
("Commission", "required", "detailed investigation"),
("Commission", "focused", "safety aspects of future flights"),
("Commission", "http://www.w3.org/2004/02/skos/core#definition", "An independent group appointed to investigate the Space Shuttle Challenger accident."),
("Commission", "moved forward with", "its investigation"),
("President", "appointed", "an independent Commission"),
("accident", "interrupted", "one of the most productive engineering, scientific and exploratory programs in history"),
("Volume I", "contains", "Preface"),
("Commission", "believes", "investigation"),
("Volume I", "contains", "Chapter I"),
("President", "was moved and troubled", "by this accident in a very personal way"),
("PRESIDENTIAL COMMISSION", "Report to", "President"),
("Volume I", "contains", "Chapter VI"),
("Commission", "held", "public hearings dealing with the facts leading up to the accident"),
("Volume I", "http://www.w3.org/2004/02/skos/core#definition", "The first volume of a multi-volume publication."),
("Space Shuttle Challenger", "was involved in", "an accident"),
("Volume I", "contains", "Chapter VII"),
("Volume I", "contains", "Chapter II"),
("Volume I", "contains", "Chapter V"),
("Commission", "believes", "its investigation and report have been responsive to the request of the President and hopes that they will serve the best interests of the nation in restoring the United States space program to its preeminent position in the world"),
("Commission", "supported", "panels"),
("Volume I", "contains", "Chapter VIII"),
("NASA", "cooperated", "Commission"),
("liquid oxygen tank", "contains", "oxidizer"),
("President", "http://www.w3.org/2004/02/skos/core#definition", "The head of state of the United States."),
("Volume I", "contains", "Chapter III"),
("Apollo lunar landing spacecraft", "had", "not yet flown"),
("Commission", "construe", "mandate"),
("accident", "became", "a milestone on the way to achieving the full potential that space offers to mankind"),
("Volume I", "contains", "The Commission"),
("Commission", "focused", "attention"),
("Commission", "learned", "lessons"),
("Commission", "required", "interfere with or supersede Congress"),
("Commission", "was made up of", "persons not connected with the mission"),
("Commission", "required", "review budgetary matters"),
("Space Shuttle", "became", "focus of NASA's near-term future"),
("Volume I", "contains", "Appendix C"),
("accident", "caused", "grief and sadness for the loss of seven brave members of the crew"),
("Commission", "http://www.w3.org/2004/02/skos/core#definition", "A group established to investigate the space shuttle accident"),
("Volume I", "contains", "Appendix D"),
("Commission", "had", "a mandate to review the circumstances surrounding the accident to establish the probable cause or causes of the accident"),
("Volume I", "contains", "Recommendations")
]
query="Present 20 facts which are present in the knowledge graph."
resp = p.request_kg_prompt(
query=query,
kg=facts,
)
print(resp)

21
tests/test-lang-relationships Executable file
View file

@ -0,0 +1,21 @@
#!/usr/bin/env python3
import pulsar
from trustgraph.prompt_client import PromptClient
p = PromptClient(pulsar_host="pulsar://localhost:6650")
chunk = """I noticed a cat in my garden. It is a four-legged animal
which is a mammal and can be tame or wild. I wonder if it will be friends
with me. I think the cat's name is Fred and it has 4 legs"""
resp = p.request_relationships(
chunk=chunk,
)
for d in resp:
print(d.s)
print(" ", d.p)
print(" ", d.o)
print(" ", d.o_entity)

View file

@ -2,7 +2,7 @@
from langchain_huggingface import HuggingFaceEmbeddings
from trustgraph.triple_vectors import TripleVectors
from trustgraph.direct.milvus import TripleVectors
client = TripleVectors()

70
tests/test-triples Executable file
View file

@ -0,0 +1,70 @@
#!/usr/bin/env python3
import pulsar
from trustgraph.triples_query_client import TriplesQueryClient
tq = TriplesQueryClient(pulsar_host="pulsar://localhost:6650")
e = "http://trustgraph.ai/e/shuttle"
limit=3
def dump(resp):
print("Response...")
for t in resp:
print(t.s.value, t.p.value, t.o.value)
print("-- * ---------------------------")
resp = tq.request(None, None, None, limit)
dump(resp)
print("-- s ---------------------------")
resp = tq.request("http://trustgraph.ai/e/shuttle", None, None, limit)
dump(resp)
print("-- p ---------------------------")
resp = tq.request(None, "http://trustgraph.ai/e/landed", None, limit)
dump(resp)
print("-- p ---------------------------")
resp = tq.request(None, None, "President", limit)
dump(resp)
print("-- sp ---------------------------")
resp = tq.request(
"http://trustgraph.ai/e/shuttle", "http://trustgraph.ai/e/landed", None,
limit
)
dump(resp)
print("-- so ---------------------------")
resp = tq.request(
"http://trustgraph.ai/e/shuttle", None, "the tower",
limit
)
dump(resp)
print("-- po ---------------------------")
resp = tq.request(
"http://trustgraph.ai/e/shuttle", "http://trustgraph.ai/e/landed",
None,
limit
)
dump(resp)
print("-- spo ---------------------------")
resp = tq.request(
"http://trustgraph.ai/e/shuttle", "http://trustgraph.ai/e/landed",
"on the concrete runway at Kennedy Space Center",
limit
)
dump(resp)