file32.hx 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. // ─── node helpers ─────────────────────────────────────────────
  2. QUERY HasCompany(company_number: String) =>
  3. company <- N<Company>({company_number: company_number})
  4. RETURN company
  5. QUERY AddCompany(company_number: String, number_of_filings: I32) =>
  6. company <- AddN<Company>({
  7. company_number: company_number,
  8. number_of_filings: number_of_filings
  9. })
  10. RETURN company
  11. QUERY HasDocumentEmbeddings(company_number: String) =>
  12. c <- N<Company>({company_number: company_number})
  13. embeddings <- c::Out<DocumentEdge>
  14. RETURN embeddings
  15. QUERY GetCompanies() =>
  16. companies <- N<Company>
  17. RETURN companies
  18. QUERY DeleteCompany(company_number: String) =>
  19. DROP N<Company>({company_number: company_number})::Out<DocumentEdge>
  20. DROP N<Company>({company_number: company_number})
  21. RETURN "success"
  22. // ─── filing / embedding helpers ───────────────────────────────
  23. QUERY AddEmbeddingsToCompany(
  24. company_number: String,
  25. embeddings_data: [{
  26. vector: [F64],
  27. text: String,
  28. chunk_id: String,
  29. page_number: I32,
  30. reference: String,
  31. filing_id: String,
  32. category: String,
  33. subcategory: String,
  34. date1: String,
  35. date2: String,
  36. source: String,
  37. description: String
  38. }]
  39. ) =>
  40. c <- N<Company>({company_number: company_number})
  41. FOR { vector, text, chunk_id, page_number, reference, filing_id, category, subcategory, date1, date2, source, description } IN embeddings_data {
  42. embedding <- AddV<DocumentEmbedding>(
  43. vector, {
  44. text: text,
  45. chunk_id: chunk_id,
  46. page_number: page_number,
  47. reference: reference,
  48. source_link: source,
  49. source_date: date1
  50. })
  51. edges <- AddE<DocumentEdge>({
  52. filing_id: filing_id,
  53. category: category,
  54. subcategory: subcategory,
  55. date: date2,
  56. description: description
  57. })::From(c)::To(embedding)
  58. }
  59. RETURN "success"
  60. // tmp function for testing helix
  61. QUERY AddVector(vector: [F64], text: String, chunk_id: String, page_number: I32, reference: String) =>
  62. embedding <- AddV<DocumentEmbedding>(vector, {text: text, chunk_id: chunk_id, page_number: page_number, reference: reference})
  63. RETURN embedding
  64. // tmp function for testing helix
  65. QUERY SearchVector(query: [F64], k: I32) =>
  66. embedding_search <- SearchV<DocumentEmbedding>(query, k)
  67. RETURN embedding_search
  68. QUERY GetAllCompanyEmbeddings(company_number: String) =>
  69. // get company node
  70. c <- N<Company>({company_number: company_number})
  71. // get all embeddings
  72. embeddings <- c::Out<DocumentEdge>
  73. // return vector data
  74. RETURN embeddings
  75. QUERY CompanyEmbeddingSearch(company_number: String, query: [F64], k: I32) =>
  76. c <- N<Company>({company_number: company_number})::OutE<DocumentEdge>::ToV
  77. embedding_search <- c::SearchV<DocumentEmbedding>(query, k)
  78. RETURN embedding_search
  79. QUERY DeleteAll() =>
  80. DROP N<Company>
  81. RETURN "success"