graphrag 0.1.1.dev4__tar.gz → 0.1.2.dev48__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (399) hide show
  1. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/PKG-INFO +26 -7
  2. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/README.md +22 -3
  3. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/create_graphrag_config.py +40 -8
  4. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/defaults.py +12 -3
  5. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/claim_extraction_config.py +3 -1
  6. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/community_reports_config.py +3 -1
  7. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/entity_extraction_config.py +3 -1
  8. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/global_search_config.py +12 -0
  9. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/llm_parameters.py +12 -0
  10. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/local_search_config.py +12 -0
  11. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/summarize_descriptions_config.py +3 -1
  12. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/__main__.py +11 -2
  13. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/cli.py +54 -27
  14. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/claims/claim_extractor.py +4 -1
  15. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/graph/graph_extractor.py +6 -1
  16. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/init_content.py +11 -2
  17. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/input/csv.py +10 -3
  18. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/input/text.py +12 -1
  19. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/llm/load_llm.py +3 -1
  20. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/load_pipeline_config.py +4 -4
  21. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/reporting/file_workflow_callbacks.py +2 -2
  22. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/storage/file_pipeline_storage.py +3 -1
  23. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/utils/json.py +2 -0
  24. graphrag-0.1.2.dev48/graphrag/index/utils/rate_limiter.py +40 -0
  25. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/utils/tokens.py +9 -1
  26. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/covariates/extract_covariates/strategies/graph_intelligence/run_gi_extract_claims.py +5 -4
  27. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/entities/extraction/entity_extract.py +2 -2
  28. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/entities/extraction/strategies/graph_intelligence/run_graph_intelligence.py +4 -3
  29. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/report/strategies/graph_intelligence/run_graph_intelligence.py +4 -0
  30. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/chunk/strategies/tokens.py +4 -6
  31. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/chunk/text_chunk.py +2 -2
  32. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/embed/strategies/openai.py +2 -1
  33. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/embed/text_embed.py +1 -1
  34. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/translate/strategies/openai.py +3 -2
  35. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/__main__.py +40 -3
  36. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/cli.py +54 -8
  37. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/generator/__init__.py +4 -0
  38. graphrag-0.1.2.dev48/graphrag/prompt_tune/generator/community_report_rating.py +35 -0
  39. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/generator/community_report_summarization.py +11 -3
  40. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/generator/entity_extraction_prompt.py +18 -11
  41. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/generator/entity_relationship.py +5 -2
  42. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/generator/entity_summarization_prompt.py +5 -3
  43. graphrag-0.1.2.dev48/graphrag/prompt_tune/generator/language.py +27 -0
  44. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/loader/config.py +4 -4
  45. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/loader/input.py +51 -1
  46. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/prompt/__init__.py +6 -2
  47. graphrag-0.1.2.dev48/graphrag/prompt_tune/prompt/community_report_rating.py +132 -0
  48. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/prompt/entity_relationship.py +3 -3
  49. graphrag-0.1.2.dev48/graphrag/prompt_tune/prompt/language.py +12 -0
  50. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/template/community_report_summarization.py +5 -6
  51. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/template/entity_extraction.py +3 -3
  52. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/template/entity_summarization.py +1 -1
  53. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/__main__.py +2 -1
  54. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/cli.py +6 -5
  55. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/factories.py +25 -13
  56. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/llm/oai/chat_openai.py +12 -2
  57. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/llm/oai/openai.py +18 -2
  58. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/pyproject.toml +7 -7
  59. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/LICENSE +0 -0
  60. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/__init__.py +0 -0
  61. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/__init__.py +0 -0
  62. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/enums.py +0 -0
  63. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/environment_reader.py +0 -0
  64. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/errors.py +0 -0
  65. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/__init__.py +0 -0
  66. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/cache_config_input.py +0 -0
  67. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/chunking_config_input.py +0 -0
  68. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/claim_extraction_config_input.py +0 -0
  69. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/cluster_graph_config_input.py +0 -0
  70. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/community_reports_config_input.py +0 -0
  71. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/embed_graph_config_input.py +0 -0
  72. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/entity_extraction_config_input.py +0 -0
  73. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/global_search_config_input.py +0 -0
  74. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/graphrag_config_input.py +0 -0
  75. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/input_config_input.py +0 -0
  76. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/llm_config_input.py +0 -0
  77. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/llm_parameters_input.py +0 -0
  78. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/local_search_config_input.py +0 -0
  79. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/parallelization_parameters_input.py +0 -0
  80. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/reporting_config_input.py +0 -0
  81. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/snapshots_config_input.py +0 -0
  82. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/storage_config_input.py +0 -0
  83. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/summarize_descriptions_config_input.py +0 -0
  84. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/text_embedding_config_input.py +0 -0
  85. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/input_models/umap_config_input.py +0 -0
  86. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/__init__.py +0 -0
  87. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/cache_config.py +0 -0
  88. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/chunking_config.py +0 -0
  89. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/cluster_graph_config.py +0 -0
  90. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/embed_graph_config.py +0 -0
  91. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/graph_rag_config.py +0 -0
  92. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/input_config.py +0 -0
  93. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/llm_config.py +0 -0
  94. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/parallelization_parameters.py +0 -0
  95. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/reporting_config.py +0 -0
  96. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/snapshots_config.py +0 -0
  97. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/storage_config.py +0 -0
  98. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/text_embedding_config.py +0 -0
  99. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/models/umap_config.py +0 -0
  100. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/config/read_dotenv.py +0 -0
  101. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/__init__.py +0 -0
  102. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/bootstrap.py +0 -0
  103. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/cache/__init__.py +0 -0
  104. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/cache/json_pipeline_cache.py +0 -0
  105. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/cache/load_cache.py +0 -0
  106. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/cache/memory_pipeline_cache.py +0 -0
  107. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/cache/noop_pipeline_cache.py +0 -0
  108. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/cache/pipeline_cache.py +0 -0
  109. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/config/__init__.py +0 -0
  110. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/config/cache.py +0 -0
  111. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/config/input.py +0 -0
  112. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/config/pipeline.py +0 -0
  113. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/config/reporting.py +0 -0
  114. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/config/storage.py +0 -0
  115. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/config/workflow.py +0 -0
  116. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/context.py +0 -0
  117. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/create_pipeline_config.py +0 -0
  118. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/emit/__init__.py +0 -0
  119. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/emit/csv_table_emitter.py +0 -0
  120. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/emit/factories.py +0 -0
  121. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/emit/json_table_emitter.py +0 -0
  122. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/emit/parquet_table_emitter.py +0 -0
  123. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/emit/table_emitter.py +0 -0
  124. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/emit/types.py +0 -0
  125. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/errors.py +0 -0
  126. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/__init__.py +0 -0
  127. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/embedding/__init__.py +0 -0
  128. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/embedding/embedding.py +0 -0
  129. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/__init__.py +0 -0
  130. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/claims/__init__.py +0 -0
  131. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/claims/prompts.py +0 -0
  132. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/community_reports/__init__.py +0 -0
  133. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/community_reports/build_mixed_context.py +0 -0
  134. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/community_reports/community_reports_extractor.py +0 -0
  135. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/community_reports/prep_community_report_context.py +0 -0
  136. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/community_reports/prompts.py +0 -0
  137. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/community_reports/schemas.py +0 -0
  138. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/community_reports/sort_context.py +0 -0
  139. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/community_reports/utils.py +0 -0
  140. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/graph/__init__.py +0 -0
  141. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/graph/prompts.py +0 -0
  142. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/summarize/__init__.py +0 -0
  143. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/summarize/description_summary_extractor.py +0 -0
  144. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/extractors/summarize/prompts.py +0 -0
  145. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/utils/__init__.py +0 -0
  146. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/utils/normalize_node_names.py +0 -0
  147. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/utils/stable_lcc.py +0 -0
  148. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/visualization/__init__.py +0 -0
  149. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/visualization/compute_umap_positions.py +0 -0
  150. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/graph/visualization/typing.py +0 -0
  151. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/input/__init__.py +0 -0
  152. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/input/load_input.py +0 -0
  153. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/llm/__init__.py +0 -0
  154. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/llm/types.py +0 -0
  155. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/progress/__init__.py +0 -0
  156. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/progress/rich.py +0 -0
  157. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/progress/types.py +0 -0
  158. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/py.typed +0 -0
  159. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/reporting/__init__.py +0 -0
  160. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/reporting/blob_workflow_callbacks.py +0 -0
  161. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/reporting/console_workflow_callbacks.py +0 -0
  162. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/reporting/load_pipeline_reporter.py +0 -0
  163. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/reporting/progress_workflow_callbacks.py +0 -0
  164. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/run.py +0 -0
  165. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/storage/__init__.py +0 -0
  166. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/storage/blob_pipeline_storage.py +0 -0
  167. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/storage/load_storage.py +0 -0
  168. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/storage/memory_pipeline_storage.py +0 -0
  169. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/storage/typing.py +0 -0
  170. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/text_splitting/__init__.py +0 -0
  171. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/text_splitting/check_token_limit.py +0 -0
  172. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/text_splitting/text_splitting.py +0 -0
  173. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/typing.py +0 -0
  174. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/utils/__init__.py +0 -0
  175. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/utils/dataframes.py +0 -0
  176. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/utils/dicts.py +0 -0
  177. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/utils/ds_util.py +0 -0
  178. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/utils/hashing.py +0 -0
  179. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/utils/is_null.py +0 -0
  180. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/utils/load_graph.py +0 -0
  181. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/utils/string.py +0 -0
  182. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/utils/topological_sort.py +0 -0
  183. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/utils/uuid.py +0 -0
  184. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/__init__.py +0 -0
  185. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/covariates/__init__.py +0 -0
  186. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/covariates/extract_covariates/__init__.py +0 -0
  187. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/covariates/extract_covariates/extract_covariates.py +0 -0
  188. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/covariates/extract_covariates/strategies/__init__.py +0 -0
  189. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/covariates/extract_covariates/strategies/graph_intelligence/__init__.py +0 -0
  190. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/covariates/extract_covariates/strategies/graph_intelligence/defaults.py +0 -0
  191. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/covariates/typing.py +0 -0
  192. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/entities/__init__.py +0 -0
  193. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/entities/extraction/__init__.py +0 -0
  194. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/entities/extraction/strategies/__init__.py +0 -0
  195. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/entities/extraction/strategies/graph_intelligence/__init__.py +0 -0
  196. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/entities/extraction/strategies/graph_intelligence/defaults.py +0 -0
  197. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/entities/extraction/strategies/nltk.py +0 -0
  198. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/entities/extraction/strategies/typing.py +0 -0
  199. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/entities/summarize/__init__.py +0 -0
  200. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/entities/summarize/description_summarize.py +0 -0
  201. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/entities/summarize/strategies/__init__.py +0 -0
  202. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/entities/summarize/strategies/graph_intelligence/__init__.py +0 -0
  203. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/entities/summarize/strategies/graph_intelligence/defaults.py +0 -0
  204. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/entities/summarize/strategies/graph_intelligence/run_graph_intelligence.py +0 -0
  205. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/entities/summarize/strategies/typing.py +0 -0
  206. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/genid.py +0 -0
  207. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/__init__.py +0 -0
  208. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/clustering/__init__.py +0 -0
  209. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/clustering/cluster_graph.py +0 -0
  210. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/clustering/strategies/__init__.py +0 -0
  211. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/clustering/strategies/leiden.py +0 -0
  212. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/clustering/typing.py +0 -0
  213. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/compute_edge_combined_degree.py +0 -0
  214. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/create.py +0 -0
  215. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/embed/__init__.py +0 -0
  216. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/embed/embed_graph.py +0 -0
  217. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/embed/strategies/__init__.py +0 -0
  218. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/embed/strategies/node_2_vec.py +0 -0
  219. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/embed/typing.py +0 -0
  220. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/layout/__init__.py +0 -0
  221. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/layout/layout_graph.py +0 -0
  222. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/layout/methods/__init__.py +0 -0
  223. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/layout/methods/umap.py +0 -0
  224. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/layout/methods/zero.py +0 -0
  225. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/merge/__init__.py +0 -0
  226. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/merge/defaults.py +0 -0
  227. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/merge/merge_graphs.py +0 -0
  228. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/merge/typing.py +0 -0
  229. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/report/__init__.py +0 -0
  230. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/report/create_community_reports.py +0 -0
  231. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/report/prepare_community_reports.py +0 -0
  232. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/report/prepare_community_reports_claims.py +0 -0
  233. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/report/prepare_community_reports_edges.py +0 -0
  234. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/report/prepare_community_reports_nodes.py +0 -0
  235. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/report/restore_community_hierarchy.py +0 -0
  236. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/report/strategies/__init__.py +0 -0
  237. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/report/strategies/graph_intelligence/__init__.py +0 -0
  238. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/report/strategies/graph_intelligence/defaults.py +0 -0
  239. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/report/strategies/typing.py +0 -0
  240. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/graph/unpack.py +0 -0
  241. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/overrides/__init__.py +0 -0
  242. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/overrides/aggregate.py +0 -0
  243. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/overrides/concat.py +0 -0
  244. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/overrides/merge.py +0 -0
  245. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/snapshot.py +0 -0
  246. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/snapshot_rows.py +0 -0
  247. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/spread_json.py +0 -0
  248. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/__init__.py +0 -0
  249. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/chunk/__init__.py +0 -0
  250. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/chunk/strategies/__init__.py +0 -0
  251. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/chunk/strategies/sentence.py +0 -0
  252. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/chunk/strategies/typing.py +0 -0
  253. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/chunk/typing.py +0 -0
  254. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/embed/__init__.py +0 -0
  255. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/embed/strategies/__init__.py +0 -0
  256. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/embed/strategies/mock.py +0 -0
  257. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/embed/strategies/typing.py +0 -0
  258. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/replace/__init__.py +0 -0
  259. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/replace/replace.py +0 -0
  260. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/replace/typing.py +0 -0
  261. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/split.py +0 -0
  262. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/translate/__init__.py +0 -0
  263. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/translate/strategies/__init__.py +0 -0
  264. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/translate/strategies/defaults.py +0 -0
  265. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/translate/strategies/mock.py +0 -0
  266. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/translate/strategies/typing.py +0 -0
  267. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/text/translate/text_translate.py +0 -0
  268. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/unzip.py +0 -0
  269. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/verbs/zip.py +0 -0
  270. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/__init__.py +0 -0
  271. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/default_workflows.py +0 -0
  272. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/load.py +0 -0
  273. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/typing.py +0 -0
  274. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/__init__.py +0 -0
  275. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/create_base_documents.py +0 -0
  276. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/create_base_entity_graph.py +0 -0
  277. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/create_base_extracted_entities.py +0 -0
  278. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/create_base_text_units.py +0 -0
  279. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/create_final_communities.py +0 -0
  280. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/create_final_community_reports.py +0 -0
  281. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/create_final_covariates.py +0 -0
  282. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/create_final_documents.py +0 -0
  283. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/create_final_entities.py +0 -0
  284. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/create_final_nodes.py +0 -0
  285. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/create_final_relationships.py +0 -0
  286. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/create_final_text_units.py +0 -0
  287. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/create_summarized_entities.py +0 -0
  288. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/join_text_units_to_covariate_ids.py +0 -0
  289. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/join_text_units_to_entity_ids.py +0 -0
  290. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/index/workflows/v1/join_text_units_to_relationship_ids.py +0 -0
  291. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/__init__.py +0 -0
  292. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/base/__init__.py +0 -0
  293. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/base/_create_cache_key.py +0 -0
  294. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/base/base_llm.py +0 -0
  295. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/base/caching_llm.py +0 -0
  296. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/base/rate_limiting_llm.py +0 -0
  297. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/errors.py +0 -0
  298. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/limiting/__init__.py +0 -0
  299. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/limiting/composite_limiter.py +0 -0
  300. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/limiting/create_limiters.py +0 -0
  301. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/limiting/llm_limiter.py +0 -0
  302. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/limiting/noop_llm_limiter.py +0 -0
  303. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/limiting/tpm_rpm_limiter.py +0 -0
  304. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/mock/__init__.py +0 -0
  305. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/mock/mock_chat_llm.py +0 -0
  306. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/mock/mock_completion_llm.py +0 -0
  307. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/openai/__init__.py +0 -0
  308. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/openai/_json.py +0 -0
  309. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/openai/_prompts.py +0 -0
  310. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/openai/create_openai_client.py +0 -0
  311. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/openai/factories.py +0 -0
  312. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/openai/json_parsing_llm.py +0 -0
  313. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/openai/openai_chat_llm.py +0 -0
  314. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/openai/openai_completion_llm.py +0 -0
  315. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/openai/openai_configuration.py +0 -0
  316. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/openai/openai_embeddings_llm.py +0 -0
  317. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/openai/openai_history_tracking_llm.py +0 -0
  318. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/openai/openai_token_replacing_llm.py +0 -0
  319. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/openai/types.py +0 -0
  320. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/openai/utils.py +0 -0
  321. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/types/__init__.py +0 -0
  322. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/types/llm.py +0 -0
  323. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/types/llm_cache.py +0 -0
  324. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/types/llm_callbacks.py +0 -0
  325. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/types/llm_config.py +0 -0
  326. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/types/llm_invocation_result.py +0 -0
  327. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/types/llm_io.py +0 -0
  328. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/llm/types/llm_types.py +0 -0
  329. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/model/__init__.py +0 -0
  330. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/model/community.py +0 -0
  331. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/model/community_report.py +0 -0
  332. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/model/covariate.py +0 -0
  333. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/model/document.py +0 -0
  334. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/model/entity.py +0 -0
  335. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/model/identified.py +0 -0
  336. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/model/named.py +0 -0
  337. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/model/relationship.py +0 -0
  338. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/model/text_unit.py +0 -0
  339. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/model/types.py +0 -0
  340. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/__init__.py +0 -0
  341. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/generator/community_reporter_role.py +0 -0
  342. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/generator/defaults.py +0 -0
  343. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/generator/domain.py +0 -0
  344. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/generator/entity_types.py +0 -0
  345. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/generator/persona.py +0 -0
  346. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/loader/__init__.py +0 -0
  347. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/prompt/community_reporter_role.py +0 -0
  348. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/prompt/domain.py +0 -0
  349. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/prompt/entity_types.py +0 -0
  350. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/prompt/persona.py +0 -0
  351. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/prompt_tune/template/__init__.py +0 -0
  352. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/__init__.py +0 -0
  353. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/context_builder/__init__.py +0 -0
  354. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/context_builder/builders.py +0 -0
  355. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/context_builder/community_context.py +0 -0
  356. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/context_builder/conversation_history.py +0 -0
  357. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/context_builder/entity_extraction.py +0 -0
  358. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/context_builder/local_context.py +0 -0
  359. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/context_builder/source_context.py +0 -0
  360. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/indexer_adapters.py +0 -0
  361. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/input/__init__.py +0 -0
  362. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/input/loaders/__init__.py +0 -0
  363. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/input/loaders/dfs.py +0 -0
  364. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/input/loaders/utils.py +0 -0
  365. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/input/retrieval/__init__.py +0 -0
  366. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/input/retrieval/community_reports.py +0 -0
  367. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/input/retrieval/covariates.py +0 -0
  368. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/input/retrieval/entities.py +0 -0
  369. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/input/retrieval/relationships.py +0 -0
  370. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/input/retrieval/text_units.py +0 -0
  371. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/llm/__init__.py +0 -0
  372. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/llm/base.py +0 -0
  373. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/llm/oai/__init__.py +0 -0
  374. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/llm/oai/base.py +0 -0
  375. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/llm/oai/embedding.py +0 -0
  376. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/llm/oai/typing.py +0 -0
  377. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/llm/text_utils.py +0 -0
  378. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/progress.py +0 -0
  379. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/question_gen/__init__.py +0 -0
  380. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/question_gen/base.py +0 -0
  381. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/question_gen/local_gen.py +0 -0
  382. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/question_gen/system_prompt.py +0 -0
  383. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/structured_search/__init__.py +0 -0
  384. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/structured_search/base.py +0 -0
  385. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/structured_search/global_search/__init__.py +0 -0
  386. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/structured_search/global_search/callbacks.py +0 -0
  387. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/structured_search/global_search/community_context.py +0 -0
  388. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/structured_search/global_search/map_system_prompt.py +0 -0
  389. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/structured_search/global_search/reduce_system_prompt.py +0 -0
  390. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/structured_search/global_search/search.py +0 -0
  391. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/structured_search/local_search/__init__.py +0 -0
  392. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/structured_search/local_search/mixed_context.py +0 -0
  393. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/structured_search/local_search/search.py +0 -0
  394. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/query/structured_search/local_search/system_prompt.py +0 -0
  395. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/vector_stores/__init__.py +0 -0
  396. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/vector_stores/azure_ai_search.py +0 -0
  397. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/vector_stores/base.py +0 -0
  398. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/vector_stores/lancedb.py +0 -0
  399. {graphrag-0.1.1.dev4 → graphrag-0.1.2.dev48}/graphrag/vector_stores/typing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: graphrag
3
- Version: 0.1.1.dev4
3
+ Version: 0.1.2.dev48
4
4
  Summary:
5
5
  License: MIT
6
6
  Author: Alonso Guevara Fernández
@@ -21,7 +21,7 @@ Requires-Dist: devtools (>=0.12.2,<0.13.0)
21
21
  Requires-Dist: environs (>=11.0.0,<12.0.0)
22
22
  Requires-Dist: fastparquet (>=2024.2.0,<2025.0.0)
23
23
  Requires-Dist: graspologic (>=3.4.1,<4.0.0)
24
- Requires-Dist: lancedb (>=0.9.0,<0.10.0)
24
+ Requires-Dist: lancedb (>=0.10.0,<0.11.0)
25
25
  Requires-Dist: nest-asyncio (>=1.6.0,<2.0.0) ; platform_system == "Windows"
26
26
  Requires-Dist: networkx (>=3,<4)
27
27
  Requires-Dist: nltk (==3.8.1)
@@ -35,8 +35,8 @@ Requires-Dist: pyyaml (>=6.0.1,<7.0.0)
35
35
  Requires-Dist: rich (>=13.6.0,<14.0.0)
36
36
  Requires-Dist: scipy (==1.12.0)
37
37
  Requires-Dist: swifter (>=1.4.0,<2.0.0)
38
- Requires-Dist: tenacity (>=8.2.3,<9.0.0)
39
- Requires-Dist: textual (>=0.70.0,<0.71.0)
38
+ Requires-Dist: tenacity (>=8.5.0,<9.0.0)
39
+ Requires-Dist: textual (>=0.72.0,<0.73.0)
40
40
  Requires-Dist: tiktoken (>=0.7.0,<0.8.0)
41
41
  Requires-Dist: typing-extensions (>=4.12.2,<5.0.0)
42
42
  Requires-Dist: uvloop (>=0.19.0,<0.20.0) ; platform_system != "Windows"
@@ -44,9 +44,25 @@ Description-Content-Type: text/markdown
44
44
 
45
45
  # GraphRAG
46
46
 
47
- 👉 [Use the GraphRAG Accelerator solution](https://github.com/Azure-Samples/graphrag-accelerator)
48
- 👉 [Microsoft Research Blog Post](https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/)
49
- 👉 [Read the docs](https://microsoft.github.io/graphrag)
47
+ 👉 [Use the GraphRAG Accelerator solution](https://github.com/Azure-Samples/graphrag-accelerator) <br/>
48
+ 👉 [Microsoft Research Blog Post](https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/)<br/>
49
+ 👉 [Read the docs](https://microsoft.github.io/graphrag)<br/>
50
+ 👉 [GraphRAG Arxiv](https://arxiv.org/pdf/2404.16130)
51
+
52
+ <div align="left">
53
+ <a href="https://pypi.org/project/graphrag/">
54
+ <img alt="PyPI - Version" src="https://img.shields.io/pypi/v/graphrag">
55
+ </a>
56
+ <a href="https://pypi.org/project/graphrag/">
57
+ <img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dm/graphrag">
58
+ </a>
59
+ <a href="https://github.com/microsoft/graphrag/issues">
60
+ <img alt="GitHub Issues" src="https://img.shields.io/github/issues/microsoft/graphrag">
61
+ </a>
62
+ <a href="https://github.com/microsoft/graphrag/discussions">
63
+ <img alt="GitHub Discussions" src="https://img.shields.io/github/discussions/microsoft/graphrag">
64
+ </a>
65
+ </div>
50
66
 
51
67
  ## Overview
52
68
 
@@ -62,10 +78,13 @@ To get started with the GraphRAG system we recommend trying the [Solution Accele
62
78
 
63
79
  This repository presents a methodology for using knowledge graph memory structures to enhance LLM outputs. Please note that the provided code serves as a demonstration and is not an officially supported Microsoft offering.
64
80
 
81
+ ⚠️ *Warning: GraphRAG indexing can be an expensive operation, please read all of the documentation to understand the process and costs involved, and start small.*
82
+
65
83
  ## Diving Deeper
66
84
 
67
85
  - To learn about our contribution guidelines, see [CONTRIBUTING.md](./CONTRIBUTING.md)
68
86
  - To start developing _GraphRAG_, see [DEVELOPING.md](./DEVELOPING.md)
87
+ - Join the conversation and provide feedback in the [GitHub Discussions tab!](https://github.com/microsoft/graphrag/discussions)
69
88
 
70
89
  ## Prompt Tuning
71
90
 
@@ -1,8 +1,24 @@
1
1
  # GraphRAG
2
2
 
3
- 👉 [Use the GraphRAG Accelerator solution](https://github.com/Azure-Samples/graphrag-accelerator)
4
- 👉 [Microsoft Research Blog Post](https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/)
5
- 👉 [Read the docs](https://microsoft.github.io/graphrag)
3
+ 👉 [Use the GraphRAG Accelerator solution](https://github.com/Azure-Samples/graphrag-accelerator) <br/>
4
+ 👉 [Microsoft Research Blog Post](https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/)<br/>
5
+ 👉 [Read the docs](https://microsoft.github.io/graphrag)<br/>
6
+ 👉 [GraphRAG Arxiv](https://arxiv.org/pdf/2404.16130)
7
+
8
+ <div align="left">
9
+ <a href="https://pypi.org/project/graphrag/">
10
+ <img alt="PyPI - Version" src="https://img.shields.io/pypi/v/graphrag">
11
+ </a>
12
+ <a href="https://pypi.org/project/graphrag/">
13
+ <img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dm/graphrag">
14
+ </a>
15
+ <a href="https://github.com/microsoft/graphrag/issues">
16
+ <img alt="GitHub Issues" src="https://img.shields.io/github/issues/microsoft/graphrag">
17
+ </a>
18
+ <a href="https://github.com/microsoft/graphrag/discussions">
19
+ <img alt="GitHub Discussions" src="https://img.shields.io/github/discussions/microsoft/graphrag">
20
+ </a>
21
+ </div>
6
22
 
7
23
  ## Overview
8
24
 
@@ -18,10 +34,13 @@ To get started with the GraphRAG system we recommend trying the [Solution Accele
18
34
 
19
35
  This repository presents a methodology for using knowledge graph memory structures to enhance LLM outputs. Please note that the provided code serves as a demonstration and is not an officially supported Microsoft offering.
20
36
 
37
+ ⚠️ *Warning: GraphRAG indexing can be an expensive operation, please read all of the documentation to understand the process and costs involved, and start small.*
38
+
21
39
  ## Diving Deeper
22
40
 
23
41
  - To learn about our contribution guidelines, see [CONTRIBUTING.md](./CONTRIBUTING.md)
24
42
  - To start developing _GraphRAG_, see [DEVELOPING.md](./DEVELOPING.md)
43
+ - Join the conversation and provide feedback in the [GitHub Discussions tab!](https://github.com/microsoft/graphrag/discussions)
25
44
 
26
45
  ## Prompt Tuning
27
46
 
@@ -112,6 +112,9 @@ def create_graphrag_config(
112
112
  proxy=reader.str("proxy") or base.proxy,
113
113
  model=reader.str("model") or base.model,
114
114
  max_tokens=reader.int(Fragment.max_tokens) or base.max_tokens,
115
+ temperature=reader.float(Fragment.temperature) or base.temperature,
116
+ top_p=reader.float(Fragment.top_p) or base.top_p,
117
+ n=reader.int(Fragment.n) or base.n,
115
118
  model_supports_json=reader.bool(Fragment.model_supports_json)
116
119
  or base.model_supports_json,
117
120
  request_timeout=reader.float(Fragment.request_timeout)
@@ -134,13 +137,27 @@ def create_graphrag_config(
134
137
  config: LLMConfigInput, base: LLMParameters
135
138
  ) -> LLMParameters:
136
139
  with reader.use(config.get("llm")):
140
+ api_type = reader.str(Fragment.type) or defs.EMBEDDING_TYPE
141
+ api_type = LLMType(api_type) if api_type else defs.LLM_TYPE
137
142
  api_key = reader.str(Fragment.api_key) or base.api_key
138
- api_base = reader.str(Fragment.api_base) or base.api_base
139
- api_version = reader.str(Fragment.api_version) or base.api_version
143
+
144
+ # In a unique events where:
145
+ # - same api_bases for LLM and embeddings (both Azure)
146
+ # - different api_bases for LLM and embeddings (both Azure)
147
+ # - LLM uses Azure OpenAI, while embeddings uses base OpenAI (this one is important)
148
+ # - LLM uses Azure OpenAI, while embeddings uses third-party OpenAI-like API
149
+ api_base = (
150
+ reader.str(Fragment.api_base) or base.api_base
151
+ if _is_azure(api_type)
152
+ else reader.str(Fragment.api_base)
153
+ )
154
+ api_version = (
155
+ reader.str(Fragment.api_version) or base.api_version
156
+ if _is_azure(api_type)
157
+ else reader.str(Fragment.api_version)
158
+ )
140
159
  api_organization = reader.str("organization") or base.organization
141
160
  api_proxy = reader.str("proxy") or base.proxy
142
- api_type = reader.str(Fragment.type) or defs.EMBEDDING_TYPE
143
- api_type = LLMType(api_type) if api_type else defs.LLM_TYPE
144
161
  cognitive_services_endpoint = (
145
162
  reader.str(Fragment.cognitive_services_endpoint)
146
163
  or base.cognitive_services_endpoint
@@ -246,6 +263,10 @@ def create_graphrag_config(
246
263
  type=llm_type,
247
264
  model=reader.str(Fragment.model) or defs.LLM_MODEL,
248
265
  max_tokens=reader.int(Fragment.max_tokens) or defs.LLM_MAX_TOKENS,
266
+ temperature=reader.float(Fragment.temperature)
267
+ or defs.LLM_TEMPERATURE,
268
+ top_p=reader.float(Fragment.top_p) or defs.LLM_TOP_P,
269
+ n=reader.int(Fragment.n) or defs.LLM_N,
249
270
  model_supports_json=reader.bool(Fragment.model_supports_json),
250
271
  request_timeout=reader.float(Fragment.request_timeout)
251
272
  or defs.LLM_REQUEST_TIMEOUT,
@@ -420,7 +441,7 @@ def create_graphrag_config(
420
441
 
421
442
  community_report_config = values.get("community_reports") or {}
422
443
  with (
423
- reader.envvar_prefix(Section.community_report),
444
+ reader.envvar_prefix(Section.community_reports),
424
445
  reader.use(community_report_config),
425
446
  ):
426
447
  community_reports_model = CommunityReportsConfig(
@@ -474,6 +495,10 @@ def create_graphrag_config(
474
495
  or defs.LOCAL_SEARCH_TOP_K_MAPPED_ENTITIES,
475
496
  top_k_relationships=reader.int("top_k_relationships")
476
497
  or defs.LOCAL_SEARCH_TOP_K_RELATIONSHIPS,
498
+ temperature=reader.float("llm_temperature")
499
+ or defs.LOCAL_SEARCH_LLM_TEMPERATURE,
500
+ top_p=reader.float("llm_top_p") or defs.LOCAL_SEARCH_LLM_TOP_P,
501
+ n=reader.int("llm_n") or defs.LOCAL_SEARCH_LLM_N,
477
502
  max_tokens=reader.int(Fragment.max_tokens)
478
503
  or defs.LOCAL_SEARCH_MAX_TOKENS,
479
504
  llm_max_tokens=reader.int("llm_max_tokens")
@@ -485,6 +510,10 @@ def create_graphrag_config(
485
510
  reader.envvar_prefix(Section.global_search),
486
511
  ):
487
512
  global_search_model = GlobalSearchConfig(
513
+ temperature=reader.float("llm_temperature")
514
+ or defs.GLOBAL_SEARCH_LLM_TEMPERATURE,
515
+ top_p=reader.float("llm_top_p") or defs.GLOBAL_SEARCH_LLM_TOP_P,
516
+ n=reader.int("llm_n") or defs.GLOBAL_SEARCH_LLM_N,
488
517
  max_tokens=reader.int(Fragment.max_tokens)
489
518
  or defs.GLOBAL_SEARCH_MAX_TOKENS,
490
519
  data_max_tokens=reader.int("data_max_tokens")
@@ -550,16 +579,19 @@ class Fragment(str, Enum):
550
579
  max_retries = "MAX_RETRIES"
551
580
  max_retry_wait = "MAX_RETRY_WAIT"
552
581
  max_tokens = "MAX_TOKENS"
582
+ temperature = "TEMPERATURE"
583
+ top_p = "TOP_P"
584
+ n = "N"
553
585
  model = "MODEL"
554
586
  model_supports_json = "MODEL_SUPPORTS_JSON"
555
587
  prompt_file = "PROMPT_FILE"
556
588
  request_timeout = "REQUEST_TIMEOUT"
557
- rpm = "RPM"
589
+ rpm = "REQUESTS_PER_MINUTE"
558
590
  sleep_recommendation = "SLEEP_ON_RATE_LIMIT_RECOMMENDATION"
559
591
  storage_account_blob_url = "STORAGE_ACCOUNT_BLOB_URL"
560
592
  thread_count = "THREAD_COUNT"
561
593
  thread_stagger = "THREAD_STAGGER"
562
- tpm = "TPM"
594
+ tpm = "TOKENS_PER_MINUTE"
563
595
  type = "TYPE"
564
596
 
565
597
 
@@ -570,7 +602,7 @@ class Section(str, Enum):
570
602
  cache = "CACHE"
571
603
  chunk = "CHUNK"
572
604
  claim_extraction = "CLAIM_EXTRACTION"
573
- community_report = "COMMUNITY_REPORT"
605
+ community_reports = "COMMUNITY_REPORTS"
574
606
  embedding = "EMBEDDING"
575
607
  entity_extraction = "ENTITY_EXTRACTION"
576
608
  graphrag = "GRAPHRAG"
@@ -23,6 +23,9 @@ ENCODING_MODEL = "cl100k_base"
23
23
  LLM_TYPE = LLMType.OpenAIChat
24
24
  LLM_MODEL = "gpt-4-turbo-preview"
25
25
  LLM_MAX_TOKENS = 4000
26
+ LLM_TEMPERATURE = 0
27
+ LLM_TOP_P = 1
28
+ LLM_N = 1
26
29
  LLM_REQUEST_TIMEOUT = 180.0
27
30
  LLM_TOKENS_PER_MINUTE = 0
28
31
  LLM_REQUESTS_PER_MINUTE = 0
@@ -42,19 +45,19 @@ EMBEDDING_TARGET = TextEmbeddingTarget.required
42
45
 
43
46
  CACHE_TYPE = CacheType.file
44
47
  CACHE_BASE_DIR = "cache"
45
- CHUNK_SIZE = 300
48
+ CHUNK_SIZE = 1200
46
49
  CHUNK_OVERLAP = 100
47
50
  CHUNK_GROUP_BY_COLUMNS = ["id"]
48
51
  CLAIM_DESCRIPTION = (
49
52
  "Any claims or facts that could be relevant to information discovery."
50
53
  )
51
- CLAIM_MAX_GLEANINGS = 0
54
+ CLAIM_MAX_GLEANINGS = 1
52
55
  CLAIM_EXTRACTION_ENABLED = False
53
56
  MAX_CLUSTER_SIZE = 10
54
57
  COMMUNITY_REPORT_MAX_LENGTH = 2000
55
58
  COMMUNITY_REPORT_MAX_INPUT_LENGTH = 8000
56
59
  ENTITY_EXTRACTION_ENTITY_TYPES = ["organization", "person", "geo", "event"]
57
- ENTITY_EXTRACTION_MAX_GLEANINGS = 0
60
+ ENTITY_EXTRACTION_MAX_GLEANINGS = 1
58
61
  INPUT_FILE_TYPE = InputFileType.text
59
62
  INPUT_TYPE = InputType.file
60
63
  INPUT_BASE_DIR = "input"
@@ -87,9 +90,15 @@ LOCAL_SEARCH_CONVERSATION_HISTORY_MAX_TURNS = 5
87
90
  LOCAL_SEARCH_TOP_K_MAPPED_ENTITIES = 10
88
91
  LOCAL_SEARCH_TOP_K_RELATIONSHIPS = 10
89
92
  LOCAL_SEARCH_MAX_TOKENS = 12_000
93
+ LOCAL_SEARCH_LLM_TEMPERATURE = 0
94
+ LOCAL_SEARCH_LLM_TOP_P = 1
95
+ LOCAL_SEARCH_LLM_N = 1
90
96
  LOCAL_SEARCH_LLM_MAX_TOKENS = 2000
91
97
 
92
98
  # Global Search
99
+ GLOBAL_SEARCH_LLM_TEMPERATURE = 0
100
+ GLOBAL_SEARCH_LLM_TOP_P = 1
101
+ GLOBAL_SEARCH_LLM_N = 1
93
102
  GLOBAL_SEARCH_MAX_TOKENS = 12_000
94
103
  GLOBAL_SEARCH_DATA_MAX_TOKENS = 12_000
95
104
  GLOBAL_SEARCH_MAP_MAX_TOKENS = 1000
@@ -43,7 +43,9 @@ class ClaimExtractionConfig(LLMConfig):
43
43
  "type": ExtractClaimsStrategyType.graph_intelligence,
44
44
  "llm": self.llm.model_dump(),
45
45
  **self.parallelization.model_dump(),
46
- "extraction_prompt": (Path(root_dir) / self.prompt).read_text()
46
+ "extraction_prompt": (Path(root_dir) / self.prompt)
47
+ .read_bytes()
48
+ .decode(encoding="utf-8")
47
49
  if self.prompt
48
50
  else None,
49
51
  "claim_description": self.description,
@@ -38,7 +38,9 @@ class CommunityReportsConfig(LLMConfig):
38
38
  "type": CreateCommunityReportsStrategyType.graph_intelligence,
39
39
  "llm": self.llm.model_dump(),
40
40
  **self.parallelization.model_dump(),
41
- "extraction_prompt": (Path(root_dir) / self.prompt).read_text()
41
+ "extraction_prompt": (Path(root_dir) / self.prompt)
42
+ .read_bytes()
43
+ .decode(encoding="utf-8")
42
44
  if self.prompt
43
45
  else None,
44
46
  "max_report_length": self.max_length,
@@ -38,7 +38,9 @@ class EntityExtractionConfig(LLMConfig):
38
38
  "type": ExtractEntityStrategyType.graph_intelligence,
39
39
  "llm": self.llm.model_dump(),
40
40
  **self.parallelization.model_dump(),
41
- "extraction_prompt": (Path(root_dir) / self.prompt).read_text()
41
+ "extraction_prompt": (Path(root_dir) / self.prompt)
42
+ .read_bytes()
43
+ .decode(encoding="utf-8")
42
44
  if self.prompt
43
45
  else None,
44
46
  "max_gleanings": self.max_gleanings,
@@ -11,6 +11,18 @@ import graphrag.config.defaults as defs
11
11
  class GlobalSearchConfig(BaseModel):
12
12
  """The default configuration section for Cache."""
13
13
 
14
+ temperature: float | None = Field(
15
+ description="The temperature to use for token generation.",
16
+ default=defs.GLOBAL_SEARCH_LLM_TEMPERATURE,
17
+ )
18
+ top_p: float | None = Field(
19
+ description="The top-p value to use for token generation.",
20
+ default=defs.GLOBAL_SEARCH_LLM_TOP_P,
21
+ )
22
+ n: int | None = Field(
23
+ description="The number of completions to generate.",
24
+ default=defs.GLOBAL_SEARCH_LLM_N,
25
+ )
14
26
  max_tokens: int = Field(
15
27
  description="The maximum context size in tokens.",
16
28
  default=defs.GLOBAL_SEARCH_MAX_TOKENS,
@@ -25,6 +25,18 @@ class LLMParameters(BaseModel):
25
25
  description="The maximum number of tokens to generate.",
26
26
  default=defs.LLM_MAX_TOKENS,
27
27
  )
28
+ temperature: float | None = Field(
29
+ description="The temperature to use for token generation.",
30
+ default=defs.LLM_TEMPERATURE,
31
+ )
32
+ top_p: float | None = Field(
33
+ description="The top-p value to use for token generation.",
34
+ default=defs.LLM_TOP_P,
35
+ )
36
+ n: int | None = Field(
37
+ description="The number of completions to generate.",
38
+ default=defs.LLM_N,
39
+ )
28
40
  request_timeout: float = Field(
29
41
  description="The request timeout to use.", default=defs.LLM_REQUEST_TIMEOUT
30
42
  )
@@ -31,6 +31,18 @@ class LocalSearchConfig(BaseModel):
31
31
  description="The top k mapped relations.",
32
32
  default=defs.LOCAL_SEARCH_TOP_K_RELATIONSHIPS,
33
33
  )
34
+ temperature: float | None = Field(
35
+ description="The temperature to use for token generation.",
36
+ default=defs.LOCAL_SEARCH_LLM_TEMPERATURE,
37
+ )
38
+ top_p: float | None = Field(
39
+ description="The top-p value to use for token generation.",
40
+ default=defs.LOCAL_SEARCH_LLM_TOP_P,
41
+ )
42
+ n: int | None = Field(
43
+ description="The number of completions to generate.",
44
+ default=defs.LOCAL_SEARCH_LLM_N,
45
+ )
34
46
  max_tokens: int = Field(
35
47
  description="The maximum tokens.", default=defs.LOCAL_SEARCH_MAX_TOKENS
36
48
  )
@@ -34,7 +34,9 @@ class SummarizeDescriptionsConfig(LLMConfig):
34
34
  "type": SummarizeStrategyType.graph_intelligence,
35
35
  "llm": self.llm.model_dump(),
36
36
  **self.parallelization.model_dump(),
37
- "summarize_prompt": (Path(root_dir) / self.prompt).read_text()
37
+ "summarize_prompt": (Path(root_dir) / self.prompt)
38
+ .read_bytes()
39
+ .decode(encoding="utf-8")
38
40
  if self.prompt
39
41
  else None,
40
42
  "max_summary_length": self.max_length,
@@ -28,9 +28,10 @@ if __name__ == "__main__":
28
28
  )
29
29
  parser.add_argument(
30
30
  "--root",
31
- help="If no configuration is defined, the root directory to use for input data and output data",
31
+ help="If no configuration is defined, the root directory to use for input data and output data. Default value: the current directory",
32
32
  # Only required if config is not defined
33
33
  required=False,
34
+ default=".",
34
35
  type=str,
35
36
  )
36
37
  parser.add_argument(
@@ -62,9 +63,16 @@ if __name__ == "__main__":
62
63
  help="Create an initial configuration in the given path.",
63
64
  action="store_true",
64
65
  )
65
-
66
+ parser.add_argument(
67
+ "--overlay-defaults",
68
+ help="Overlay default configuration values on a provided configuration file (--config).",
69
+ action="store_true",
70
+ )
66
71
  args = parser.parse_args()
67
72
 
73
+ if args.overlay_defaults and not args.config:
74
+ parser.error("--overlay-defaults requires --config")
75
+
68
76
  index_cli(
69
77
  root=args.root,
70
78
  verbose=args.verbose or False,
@@ -76,5 +84,6 @@ if __name__ == "__main__":
76
84
  emit=args.emit,
77
85
  dryrun=args.dryrun or False,
78
86
  init=args.init or False,
87
+ overlay_defaults=args.overlay_defaults or False,
79
88
  cli=True,
80
89
  )
@@ -69,7 +69,7 @@ def redact(input: dict) -> str:
69
69
 
70
70
 
71
71
  def index_cli(
72
- root: str | None,
72
+ root: str,
73
73
  init: bool,
74
74
  verbose: bool,
75
75
  resume: str | None,
@@ -79,19 +79,24 @@ def index_cli(
79
79
  config: str | None,
80
80
  emit: str | None,
81
81
  dryrun: bool,
82
+ overlay_defaults: bool,
82
83
  cli: bool = False,
83
84
  ):
84
85
  """Run the pipeline with the given config."""
85
- root = root or ""
86
86
  run_id = resume or time.strftime("%Y%m%d-%H%M%S")
87
87
  _enable_logging(root, run_id, verbose)
88
88
  progress_reporter = _get_progress_reporter(reporter)
89
89
  if init:
90
90
  _initialize_project_at(root, progress_reporter)
91
91
  sys.exit(0)
92
- pipeline_config: str | PipelineConfig = config or _create_default_config(
93
- root, verbose, dryrun or False, progress_reporter
94
- )
92
+ if overlay_defaults:
93
+ pipeline_config: str | PipelineConfig = _create_default_config(
94
+ root, config, verbose, dryrun or False, progress_reporter
95
+ )
96
+ else:
97
+ pipeline_config: str | PipelineConfig = config or _create_default_config(
98
+ root, None, verbose, dryrun or False, progress_reporter
99
+ )
95
100
  cache = NoopPipelineCache() if nocache else None
96
101
  pipeline_emit = emit.split(",") if emit else None
97
102
  encountered_errors = False
@@ -180,11 +185,11 @@ def _initialize_project_at(path: str, reporter: ProgressReporter) -> None:
180
185
 
181
186
  dotenv = root / ".env"
182
187
  if not dotenv.exists():
183
- with settings_yaml.open("w") as file:
184
- file.write(INIT_YAML)
188
+ with settings_yaml.open("wb") as file:
189
+ file.write(INIT_YAML.encode(encoding="utf-8", errors="strict"))
185
190
 
186
- with dotenv.open("w") as file:
187
- file.write(INIT_DOTENV)
191
+ with dotenv.open("wb") as file:
192
+ file.write(INIT_DOTENV.encode(encoding="utf-8", errors="strict"))
188
193
 
189
194
  prompts_dir = root / "prompts"
190
195
  if not prompts_dir.exists():
@@ -192,34 +197,48 @@ def _initialize_project_at(path: str, reporter: ProgressReporter) -> None:
192
197
 
193
198
  entity_extraction = prompts_dir / "entity_extraction.txt"
194
199
  if not entity_extraction.exists():
195
- with entity_extraction.open("w") as file:
196
- file.write(GRAPH_EXTRACTION_PROMPT)
200
+ with entity_extraction.open("wb") as file:
201
+ file.write(
202
+ GRAPH_EXTRACTION_PROMPT.encode(encoding="utf-8", errors="strict")
203
+ )
197
204
 
198
205
  summarize_descriptions = prompts_dir / "summarize_descriptions.txt"
199
206
  if not summarize_descriptions.exists():
200
- with summarize_descriptions.open("w") as file:
201
- file.write(SUMMARIZE_PROMPT)
207
+ with summarize_descriptions.open("wb") as file:
208
+ file.write(SUMMARIZE_PROMPT.encode(encoding="utf-8", errors="strict"))
202
209
 
203
210
  claim_extraction = prompts_dir / "claim_extraction.txt"
204
211
  if not claim_extraction.exists():
205
- with claim_extraction.open("w") as file:
206
- file.write(CLAIM_EXTRACTION_PROMPT)
212
+ with claim_extraction.open("wb") as file:
213
+ file.write(
214
+ CLAIM_EXTRACTION_PROMPT.encode(encoding="utf-8", errors="strict")
215
+ )
207
216
 
208
217
  community_report = prompts_dir / "community_report.txt"
209
218
  if not community_report.exists():
210
- with community_report.open("w") as file:
211
- file.write(COMMUNITY_REPORT_PROMPT)
219
+ with community_report.open("wb") as file:
220
+ file.write(
221
+ COMMUNITY_REPORT_PROMPT.encode(encoding="utf-8", errors="strict")
222
+ )
212
223
 
213
224
 
214
225
  def _create_default_config(
215
- root: str, verbose: bool, dryrun: bool, reporter: ProgressReporter
226
+ root: str,
227
+ config: str | None,
228
+ verbose: bool,
229
+ dryrun: bool,
230
+ reporter: ProgressReporter,
216
231
  ) -> PipelineConfig:
217
- """Create a default config if none is provided."""
232
+ """Overlay default values on an existing config or create a default config if none is provided."""
233
+ if config and not Path(config).exists():
234
+ msg = f"Configuration file {config} does not exist"
235
+ raise ValueError
236
+
218
237
  if not Path(root).exists():
219
238
  msg = f"Root directory {root} does not exist"
220
239
  raise ValueError(msg)
221
240
 
222
- parameters = _read_config_parameters(root, reporter)
241
+ parameters = _read_config_parameters(root, config, reporter)
223
242
  log.info(
224
243
  "using default configuration: %s",
225
244
  redact(parameters.model_dump()),
@@ -237,27 +256,35 @@ def _create_default_config(
237
256
  return result
238
257
 
239
258
 
240
- def _read_config_parameters(root: str, reporter: ProgressReporter):
259
+ def _read_config_parameters(root: str, config: str | None, reporter: ProgressReporter):
241
260
  _root = Path(root)
242
- settings_yaml = _root / "settings.yaml"
261
+ settings_yaml = (
262
+ Path(config)
263
+ if config and Path(config).suffix in [".yaml", ".yml"]
264
+ else _root / "settings.yaml"
265
+ )
243
266
  if not settings_yaml.exists():
244
267
  settings_yaml = _root / "settings.yml"
245
- settings_json = _root / "settings.json"
268
+ settings_json = (
269
+ Path(config)
270
+ if config and Path(config).suffix == ".json"
271
+ else _root / "settings.json"
272
+ )
246
273
 
247
274
  if settings_yaml.exists():
248
275
  reporter.success(f"Reading settings from {settings_yaml}")
249
- with settings_yaml.open("r") as file:
276
+ with settings_yaml.open("rb") as file:
250
277
  import yaml
251
278
 
252
- data = yaml.safe_load(file)
279
+ data = yaml.safe_load(file.read().decode(encoding="utf-8", errors="strict"))
253
280
  return create_graphrag_config(data, root)
254
281
 
255
282
  if settings_json.exists():
256
283
  reporter.success(f"Reading settings from {settings_json}")
257
- with settings_json.open("r") as file:
284
+ with settings_json.open("rb") as file:
258
285
  import json
259
286
 
260
- data = json.loads(file.read())
287
+ data = json.loads(file.read().decode(encoding="utf-8", errors="strict"))
261
288
  return create_graphrag_config(data, root)
262
289
 
263
290
  reporter.success("Reading settings from environment variables")
@@ -10,6 +10,7 @@ from typing import Any
10
10
 
11
11
  import tiktoken
12
12
 
13
+ import graphrag.config.defaults as defs
13
14
  from graphrag.index.typing import ErrorHandlerFn
14
15
  from graphrag.llm import CompletionLLM
15
16
 
@@ -80,7 +81,9 @@ class ClaimExtractor:
80
81
  self._input_resolved_entities_key = (
81
82
  input_resolved_entities_key or "resolved_entities"
82
83
  )
83
- self._max_gleanings = max_gleanings if max_gleanings is not None else 0
84
+ self._max_gleanings = (
85
+ max_gleanings if max_gleanings is not None else defs.CLAIM_MAX_GLEANINGS
86
+ )
84
87
  self._on_error = on_error or (lambda _e, _s, _d: None)
85
88
 
86
89
  # Construct the looping arguments
@@ -14,6 +14,7 @@ from typing import Any
14
14
  import networkx as nx
15
15
  import tiktoken
16
16
 
17
+ import graphrag.config.defaults as defs
17
18
  from graphrag.index.typing import ErrorHandlerFn
18
19
  from graphrag.index.utils import clean_str
19
20
  from graphrag.llm import CompletionLLM
@@ -78,7 +79,11 @@ class GraphExtractor:
78
79
  )
79
80
  self._entity_types_key = entity_types_key or "entity_types"
80
81
  self._extraction_prompt = prompt or GRAPH_EXTRACTION_PROMPT
81
- self._max_gleanings = max_gleanings if max_gleanings is not None else 0
82
+ self._max_gleanings = (
83
+ max_gleanings
84
+ if max_gleanings is not None
85
+ else defs.ENTITY_EXTRACTION_MAX_GLEANINGS
86
+ )
82
87
  self._on_error = on_error or (lambda _e, _s, _d: None)
83
88
 
84
89
  # Construct the looping arguments
@@ -24,6 +24,9 @@ llm:
24
24
  # max_retry_wait: {defs.LLM_MAX_RETRY_WAIT}
25
25
  # sleep_on_rate_limit_recommendation: true # whether to sleep when azure suggests wait-times
26
26
  # concurrent_requests: {defs.LLM_CONCURRENT_REQUESTS} # the number of parallel inflight requests that may be made
27
+ # temperature: {defs.LLM_TEMPERATURE} # temperature for sampling
28
+ # top_p: {defs.LLM_TOP_P} # top-p sampling
29
+ # n: {defs.LLM_N} # Number of completions to generate
27
30
 
28
31
  parallelization:
29
32
  stagger: {defs.PARALLELIZATION_STAGGER}
@@ -90,7 +93,7 @@ entity_extraction:
90
93
  ## async_mode: override the global async_mode settings for this task
91
94
  prompt: "prompts/entity_extraction.txt"
92
95
  entity_types: [{",".join(defs.ENTITY_EXTRACTION_ENTITY_TYPES)}]
93
- max_gleanings: 0
96
+ max_gleanings: {defs.ENTITY_EXTRACTION_MAX_GLEANINGS}
94
97
 
95
98
  summarize_descriptions:
96
99
  ## llm: override the global llm settings for this task
@@ -108,7 +111,7 @@ claim_extraction:
108
111
  description: "{defs.CLAIM_DESCRIPTION}"
109
112
  max_gleanings: {defs.CLAIM_MAX_GLEANINGS}
110
113
 
111
- community_report:
114
+ community_reports:
112
115
  ## llm: override the global llm settings for this task
113
116
  ## parallelization: override the global parallelization settings for this task
114
117
  ## async_mode: override the global async_mode settings for this task
@@ -141,9 +144,15 @@ local_search:
141
144
  # conversation_history_max_turns: {defs.LOCAL_SEARCH_CONVERSATION_HISTORY_MAX_TURNS}
142
145
  # top_k_mapped_entities: {defs.LOCAL_SEARCH_TOP_K_MAPPED_ENTITIES}
143
146
  # top_k_relationships: {defs.LOCAL_SEARCH_TOP_K_RELATIONSHIPS}
147
+ # llm_temperature: {defs.LOCAL_SEARCH_LLM_TEMPERATURE} # temperature for sampling
148
+ # llm_top_p: {defs.LOCAL_SEARCH_LLM_TOP_P} # top-p sampling
149
+ # llm_n: {defs.LOCAL_SEARCH_LLM_N} # Number of completions to generate
144
150
  # max_tokens: {defs.LOCAL_SEARCH_MAX_TOKENS}
145
151
 
146
152
  global_search:
153
+ # llm_temperature: {defs.GLOBAL_SEARCH_LLM_TEMPERATURE} # temperature for sampling
154
+ # llm_top_p: {defs.GLOBAL_SEARCH_LLM_TOP_P} # top-p sampling
155
+ # llm_n: {defs.GLOBAL_SEARCH_LLM_N} # Number of completions to generate
147
156
  # max_tokens: {defs.GLOBAL_SEARCH_MAX_TOKENS}
148
157
  # data_max_tokens: {defs.GLOBAL_SEARCH_DATA_MAX_TOKENS}
149
158
  # map_max_tokens: {defs.GLOBAL_SEARCH_MAP_MAX_TOKENS}