|
1 | | -""" |
2 | | -Use an LLM to query a database in human language. |
3 | | -Example code using LlamaIndex with vanilla Open AI and Azure Open AI. |
4 | | -""" |
5 | | - |
6 | 1 | import os |
7 | | -import openai |
8 | | -import sqlalchemy as sa |
9 | 2 |
|
10 | | -from dotenv import load_dotenv |
| 3 | +import openai |
11 | 4 | from langchain_openai import AzureOpenAIEmbeddings |
12 | 5 | from langchain_openai import OpenAIEmbeddings |
| 6 | +from llama_index.core import Settings |
13 | 7 | from llama_index.llms.azure_openai import AzureOpenAI |
14 | 8 | from llama_index.llms.openai import OpenAI |
15 | 9 | from llama_index.embeddings.langchain import LangchainEmbedding |
16 | | -from llama_index.core.utilities.sql_wrapper import SQLDatabase |
17 | | -from llama_index.core.query_engine import NLSQLTableQueryEngine |
18 | | -from llama_index.core import Settings |
19 | 10 |
|
20 | 11 |
|
21 | 12 | def configure_llm(): |
@@ -54,39 +45,3 @@ def configure_llm(): |
54 | 45 | model=os.getenv("EMBEDDING_MODEL_INSTANCE") |
55 | 46 | ) |
56 | 47 | ) |
57 | | - |
58 | | - |
59 | | -def main(): |
60 | | - """ |
61 | | - Use an LLM to query a database in human language. |
62 | | - """ |
63 | | - |
64 | | - # Configure application. |
65 | | - load_dotenv() |
66 | | - configure_llm() |
67 | | - |
68 | | - # Configure database connection and query engine. |
69 | | - print("Connecting to CrateDB") |
70 | | - engine_crate = sa.create_engine(os.getenv("CRATEDB_SQLALCHEMY_URL")) |
71 | | - engine_crate.connect() |
72 | | - |
73 | | - print("Creating LlamaIndex QueryEngine") |
74 | | - sql_database = SQLDatabase(engine_crate, include_tables=[os.getenv("CRATEDB_TABLE_NAME")]) |
75 | | - query_engine = NLSQLTableQueryEngine( |
76 | | - sql_database=sql_database, |
77 | | - tables=[os.getenv("CRATEDB_TABLE_NAME")], |
78 | | - llm=Settings.llm |
79 | | - ) |
80 | | - |
81 | | - # Invoke an inquiry. |
82 | | - print("Running query") |
83 | | - QUERY_STR = "What is the average value for sensor 1?" |
84 | | - answer = query_engine.query(QUERY_STR) |
85 | | - print(answer.get_formatted_sources()) |
86 | | - print("Query was:", QUERY_STR) |
87 | | - print("Answer was:", answer) |
88 | | - print(answer.metadata) |
89 | | - |
90 | | - |
91 | | -if __name__ == "__main__": |
92 | | - main() |
0 commit comments