Initial commit
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
from dotenv import load_dotenv, find_dotenv
|
||||
load_dotenv(find_dotenv())
|
||||
import os
|
||||
import modules.logger_tool as logger
|
||||
log_name = 'api_modules_langchain_graph_qa'
|
||||
log_dir = os.getenv("LOG_PATH", "/logs") # Default path as fallback
|
||||
logging = logger.get_logger(
|
||||
name=log_name,
|
||||
log_level=os.getenv("LOG_LEVEL", "DEBUG"),
|
||||
log_path=log_dir,
|
||||
log_file=log_name,
|
||||
runtime=True,
|
||||
log_format='default'
|
||||
)
|
||||
|
||||
def test_query_graph(database, prompt, top_k=20, model="gpt-4o", temperature=0, verbose=False, return_intermediate_steps=True, exclude_types=None, include_types=None, return_direct=False, validate_cypher=False, model_type="openai"):
|
||||
url = f"{os.environ['APP_API_URL']}/langchain/graph_qa/prompt"
|
||||
params = {
|
||||
"database": database,
|
||||
"prompt": prompt,
|
||||
"top_k": top_k,
|
||||
"model": model,
|
||||
"temperature": temperature,
|
||||
"verbose": verbose,
|
||||
"return_intermediate_steps": return_intermediate_steps,
|
||||
"exclude_types": exclude_types or [],
|
||||
"include_types": include_types or [],
|
||||
"return_direct": return_direct,
|
||||
"validate_cypher": validate_cypher,
|
||||
"model_type": model_type
|
||||
}
|
||||
|
||||
try:
|
||||
response = requests.get(url, params=params)
|
||||
response.raise_for_status() # Raise an error for bad status codes
|
||||
data = response.json()
|
||||
logging.info("==================================================")
|
||||
logging.info("= =")
|
||||
logging.info("= Test Execution =")
|
||||
logging.info("= =")
|
||||
logging.info("==================================================")
|
||||
logging.info(f"= Prompt: {data.get('query', 'N/A')}")
|
||||
logging.info("= =")
|
||||
logging.info(f"= Query: \n{data.get('intermediate_steps', [{'query': 'N/A'}])[0].get('query', 'N/A')}")
|
||||
logging.info("= =")
|
||||
logging.info("==================================================")
|
||||
|
||||
# Determine if the test passed or failed
|
||||
response_text = data.get('result', 'N/A')
|
||||
context = data.get('intermediate_steps', [{'context': 'N/A'}])[1].get('context', 'N/A')
|
||||
if "I don't know" in response_text or not context:
|
||||
return False, context, response_text
|
||||
else:
|
||||
return True, context, response_text
|
||||
except requests.exceptions.RequestException as e:
|
||||
logging.error("==================================================")
|
||||
logging.error("= ERROR =")
|
||||
logging.error("==================================================")
|
||||
logging.error(f"Error: {e}")
|
||||
logging.error("==================================================")
|
||||
return False, None, None
|
||||
Reference in New Issue
Block a user