Spaces:
Sleeping
Sleeping
| class BaseLogger: | |
| def __init__(self) -> None: | |
| self.info = print | |
| def extract_title_and_question(input_string): | |
| lines = input_string.strip().split("\n") | |
| title = "" | |
| question = "" | |
| is_question = False # flag to know if we are inside a "Question" block | |
| for line in lines: | |
| if line.startswith("Title:"): | |
| title = line.split("Title: ", 1)[1].strip() | |
| elif line.startswith("Question:"): | |
| question = line.split("Question: ", 1)[1].strip() | |
| is_question = ( | |
| True # set the flag to True once we encounter a "Question:" line | |
| ) | |
| elif is_question: | |
| # if the line does not start with "Question:" but we are inside a "Question" block, | |
| # then it is a continuation of the question | |
| question += "\n" + line.strip() | |
| return title, question | |
| def create_vector_index(driver, dimension: int) -> None: | |
| index_query = "CALL db.index.vector.createNodeIndex('stackoverflow', 'Question', 'embedding', $dimension, 'cosine')" | |
| try: | |
| driver.query(index_query, {"dimension": dimension}) | |
| except: # Already exists | |
| pass | |
| index_query = "CALL db.index.vector.createNodeIndex('top_answers', 'Answer', 'embedding', $dimension, 'cosine')" | |
| try: | |
| driver.query(index_query, {"dimension": dimension}) | |
| except: # Already exists | |
| pass | |
| def create_constraints(driver): | |
| driver.query( | |
| "CREATE CONSTRAINT question_id IF NOT EXISTS FOR (q:Question) REQUIRE (q.id) IS UNIQUE" | |
| ) | |
| driver.query( | |
| "CREATE CONSTRAINT answer_id IF NOT EXISTS FOR (a:Answer) REQUIRE (a.id) IS UNIQUE" | |
| ) | |
| driver.query( | |
| "CREATE CONSTRAINT user_id IF NOT EXISTS FOR (u:User) REQUIRE (u.id) IS UNIQUE" | |
| ) | |
| driver.query( | |
| "CREATE CONSTRAINT tag_name IF NOT EXISTS FOR (t:Tag) REQUIRE (t.name) IS UNIQUE" | |
| ) |