Prakhar Bhandari
commited on
Commit
·
a16ade2
1
Parent(s):
0beb8e1
Test
Browse files- kg_builder/README.md +1 -0
- kg_builder/src/__pycache__/knowledge_graph_builder.cpython-39.pyc +0 -0
- kg_builder/src/__pycache__/models.cpython-39.pyc +0 -0
- kg_builder/src/__pycache__/query_graph.cpython-39.pyc +0 -0
- kg_builder/src/__pycache__/utils.cpython-39.pyc +0 -0
- kg_builder/src/graph_creation.py +0 -2
- kg_builder/src/knowledge_graph_builder.py +0 -7
- kg_builder/src/main.py +18 -19
- kg_builder/src/models.py +0 -1
- kg_builder/src/query_graph.py +0 -1
- kg_builder/src/utils.py +0 -1
kg_builder/README.md
CHANGED
@@ -13,6 +13,7 @@ This project builds and queries knowledge graphs from Wikipedia articles using t
|
|
13 |
- pip and virtualenv (optional)
|
14 |
- Access to a Neo4j database
|
15 |
- OpenAI API key
|
|
|
16 |
|
17 |
## Installation
|
18 |
1. **Clone the repository**:
|
|
|
13 |
- pip and virtualenv (optional)
|
14 |
- Access to a Neo4j database
|
15 |
- OpenAI API key
|
16 |
+
- Extra change
|
17 |
|
18 |
## Installation
|
19 |
1. **Clone the repository**:
|
kg_builder/src/__pycache__/knowledge_graph_builder.cpython-39.pyc
CHANGED
Binary files a/kg_builder/src/__pycache__/knowledge_graph_builder.cpython-39.pyc and b/kg_builder/src/__pycache__/knowledge_graph_builder.cpython-39.pyc differ
|
|
kg_builder/src/__pycache__/models.cpython-39.pyc
CHANGED
Binary files a/kg_builder/src/__pycache__/models.cpython-39.pyc and b/kg_builder/src/__pycache__/models.cpython-39.pyc differ
|
|
kg_builder/src/__pycache__/query_graph.cpython-39.pyc
CHANGED
Binary files a/kg_builder/src/__pycache__/query_graph.cpython-39.pyc and b/kg_builder/src/__pycache__/query_graph.cpython-39.pyc differ
|
|
kg_builder/src/__pycache__/utils.cpython-39.pyc
CHANGED
Binary files a/kg_builder/src/__pycache__/utils.cpython-39.pyc and b/kg_builder/src/__pycache__/utils.cpython-39.pyc differ
|
|
kg_builder/src/graph_creation.py
CHANGED
@@ -1,10 +1,8 @@
|
|
1 |
from langchain_community.document_loaders import WikipediaLoader
|
2 |
from langchain.text_splitter import TokenTextSplitter
|
3 |
from knowledge_graph_builder import extract_and_store_graph
|
4 |
-
from langchain.schema import Document
|
5 |
from dotenv import load_dotenv
|
6 |
from tqdm import tqdm
|
7 |
-
import os
|
8 |
|
9 |
# Load environment variables
|
10 |
load_dotenv()
|
|
|
1 |
from langchain_community.document_loaders import WikipediaLoader
|
2 |
from langchain.text_splitter import TokenTextSplitter
|
3 |
from knowledge_graph_builder import extract_and_store_graph
|
|
|
4 |
from dotenv import load_dotenv
|
5 |
from tqdm import tqdm
|
|
|
6 |
|
7 |
# Load environment variables
|
8 |
load_dotenv()
|
kg_builder/src/knowledge_graph_builder.py
CHANGED
@@ -13,13 +13,6 @@ from models import Node, Relationship, KnowledgeGraph
|
|
13 |
from utils import map_to_base_node, map_to_base_relationship
|
14 |
from api_connections import get_extraction_chain
|
15 |
|
16 |
-
from langchain.chains.openai_functions import (
|
17 |
-
create_openai_fn_chain,
|
18 |
-
create_structured_output_runnable,
|
19 |
-
create_structured_output_chain,
|
20 |
-
)
|
21 |
-
|
22 |
-
|
23 |
def extract_and_store_graph(
|
24 |
document: Document,
|
25 |
category: str,
|
|
|
13 |
from utils import map_to_base_node, map_to_base_relationship
|
14 |
from api_connections import get_extraction_chain
|
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
def extract_and_store_graph(
|
17 |
document: Document,
|
18 |
category: str,
|
kg_builder/src/main.py
CHANGED
@@ -1,43 +1,42 @@
|
|
1 |
import os
|
2 |
from openai import OpenAI
|
3 |
from api_connections import get_graph_connection
|
4 |
-
from knowledge_graph_builder import extract_and_store_graph
|
5 |
from query_graph import query_knowledge_graph
|
6 |
-
|
7 |
-
|
8 |
-
from tqdm import tqdm
|
9 |
|
10 |
def get_llm():
|
11 |
api_key = os.getenv("OPENAI_API_KEY")
|
12 |
if not api_key:
|
13 |
raise ValueError("No OpenAI API key found in environment variables.")
|
14 |
-
|
|
|
15 |
|
16 |
def classify_query(query):
|
17 |
llm = get_llm()
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
def main():
|
26 |
print("Starting the script...")
|
27 |
-
|
28 |
# Get user query
|
29 |
-
query = input("Please enter your query: ")
|
30 |
-
|
31 |
# Classify the query
|
32 |
category = classify_query(query)
|
33 |
-
print(f"Query classified into category: {category}")
|
34 |
-
|
35 |
# Get the correct graph connection
|
36 |
-
graph = get_graph_connection(category)
|
37 |
-
|
38 |
# Query the correct graph
|
39 |
result = query_knowledge_graph(graph, query)
|
40 |
print(f"Query result: {result}")
|
41 |
-
|
42 |
if __name__ == "__main__":
|
43 |
main()
|
|
|
1 |
import os
|
2 |
from openai import OpenAI
|
3 |
from api_connections import get_graph_connection
|
|
|
4 |
from query_graph import query_knowledge_graph
|
5 |
+
|
6 |
+
import openai
|
|
|
7 |
|
8 |
def get_llm():
|
9 |
api_key = os.getenv("OPENAI_API_KEY")
|
10 |
if not api_key:
|
11 |
raise ValueError("No OpenAI API key found in environment variables.")
|
12 |
+
openai.api_key = api_key
|
13 |
+
return openai
|
14 |
|
15 |
def classify_query(query):
|
16 |
llm = get_llm()
|
17 |
+
try:
|
18 |
+
response = llm.ChatCompletion.create(
|
19 |
+
model="gpt-3.5-turbo-16k",
|
20 |
+
messages=[{"role": "user", "content": f"Classify the following query into 'Chemotherapy' or 'Traffic Law': {query}"}],
|
21 |
+
max_tokens=60
|
22 |
+
)
|
23 |
+
return response['choices'][0]['message']['content'].strip()
|
24 |
+
except Exception as e:
|
25 |
+
print(f"Error during classification: {e}")
|
26 |
+
return None
|
27 |
+
|
28 |
|
29 |
def main():
|
30 |
print("Starting the script...")
|
|
|
31 |
# Get user query
|
32 |
+
query = input("Please enter your query: ")
|
|
|
33 |
# Classify the query
|
34 |
category = classify_query(query)
|
35 |
+
print(f"Query classified into category: {category}")
|
|
|
36 |
# Get the correct graph connection
|
37 |
+
graph = get_graph_connection(category)
|
|
|
38 |
# Query the correct graph
|
39 |
result = query_knowledge_graph(graph, query)
|
40 |
print(f"Query result: {result}")
|
|
|
41 |
if __name__ == "__main__":
|
42 |
main()
|
kg_builder/src/models.py
CHANGED
@@ -1,7 +1,6 @@
|
|
1 |
from langchain_community.graphs.graph_document import (
|
2 |
Node as BaseNode,
|
3 |
Relationship as BaseRelationship,
|
4 |
-
GraphDocument,
|
5 |
)
|
6 |
from langchain.schema import Document
|
7 |
from typing import List, Dict, Any, Optional
|
|
|
1 |
from langchain_community.graphs.graph_document import (
|
2 |
Node as BaseNode,
|
3 |
Relationship as BaseRelationship,
|
|
|
4 |
)
|
5 |
from langchain.schema import Document
|
6 |
from typing import List, Dict, Any, Optional
|
kg_builder/src/query_graph.py
CHANGED
@@ -1,6 +1,5 @@
|
|
1 |
from langchain.chains import GraphCypherQAChain
|
2 |
from langchain_openai import ChatOpenAI
|
3 |
-
from api_connections import graph # Importing 'graph' from 'api_connections.py'
|
4 |
|
5 |
def query_knowledge_graph(graph, query):
|
6 |
print("Refreshing the graph schema...")
|
|
|
1 |
from langchain.chains import GraphCypherQAChain
|
2 |
from langchain_openai import ChatOpenAI
|
|
|
3 |
|
4 |
def query_knowledge_graph(graph, query):
|
5 |
print("Refreshing the graph schema...")
|
kg_builder/src/utils.py
CHANGED
@@ -1,7 +1,6 @@
|
|
1 |
from langchain_community.graphs.graph_document import (
|
2 |
Node as BaseNode,
|
3 |
Relationship as BaseRelationship,
|
4 |
-
GraphDocument,
|
5 |
)
|
6 |
from models import Node, Relationship
|
7 |
|
|
|
1 |
from langchain_community.graphs.graph_document import (
|
2 |
Node as BaseNode,
|
3 |
Relationship as BaseRelationship,
|
|
|
4 |
)
|
5 |
from models import Node, Relationship
|
6 |
|