fabricatio 0.2.12.dev3__tar.gz → 0.2.13.dev0__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 (165) hide show
  1. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/Cargo.lock +2 -0
  2. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/PKG-INFO +1 -1
  3. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/pyproject.toml +1 -1
  4. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/actions/article_rag.py +6 -0
  5. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/capabilities/advanced_rag.py +5 -5
  6. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/extra/article_main.py +13 -6
  7. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/rust.pyi +5 -0
  8. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/src/typst_tools.rs +26 -3
  9. fabricatio-0.2.13.dev0/templates.tar.gz +0 -0
  10. fabricatio-0.2.13.dev0/uv.lock +1709 -0
  11. fabricatio-0.2.12.dev3/templates.tar.gz +0 -0
  12. fabricatio-0.2.12.dev3/uv.lock +0 -1709
  13. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/.github/workflows/build-package.yaml +0 -0
  14. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/.github/workflows/ruff.yaml +0 -0
  15. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/.github/workflows/tests.yaml +0 -0
  16. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/.gitignore +0 -0
  17. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/.python-version +0 -0
  18. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/Cargo.toml +0 -0
  19. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/LICENSE +0 -0
  20. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/Makefile +0 -0
  21. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/README.md +0 -0
  22. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/correct/correct.py +0 -0
  23. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/correct/correct_loop.py +0 -0
  24. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/extract_and_inject/.gitignore +0 -0
  25. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/extract_and_inject/article_rag.py +0 -0
  26. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/extract_and_inject/ask.py +0 -0
  27. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/extract_and_inject/chunk_article.py +0 -0
  28. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/extract_and_inject/extract_and_inject.py +0 -0
  29. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/extract_article/extract.py +0 -0
  30. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/llm_usages/llm_usage.py +0 -0
  31. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/make_a_rating/rating.py +0 -0
  32. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/make_diary/commits.json +0 -0
  33. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/make_diary/diary.py +0 -0
  34. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/minor/hello_fabricatio.py +0 -0
  35. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/minor/write_a_poem.py +0 -0
  36. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/propose_task/.gitignore +0 -0
  37. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/propose_task/propose.py +0 -0
  38. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/reviewer/censor.py +0 -0
  39. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/reviewer/review.py +0 -0
  40. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/rules/.gitignore +0 -0
  41. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/rules/draft_ruleset.py +0 -0
  42. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/search_bibtex/.gitignore +0 -0
  43. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/search_bibtex/search.py +0 -0
  44. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/simple_chat/chat.py +0 -0
  45. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/simple_rag/simple_rag.py +0 -0
  46. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/task_handle/handle_task.py +0 -0
  47. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/write_article/.gitignore +0 -0
  48. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/write_article/article_rag.py +0 -0
  49. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/write_article/post_process.py +0 -0
  50. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/write_article/write_article.py +0 -0
  51. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/write_outline/.gitignore +0 -0
  52. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/write_outline/write_outline.py +0 -0
  53. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/examples/write_outline/write_outline_corrected.py +0 -0
  54. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/__init__.py +0 -0
  55. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/actions/__init__.py +0 -0
  56. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/actions/article.py +0 -0
  57. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/actions/fs.py +0 -0
  58. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/actions/output.py +0 -0
  59. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/actions/rag.py +0 -0
  60. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/actions/rules.py +0 -0
  61. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/capabilities/__init__.py +0 -0
  62. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/capabilities/advanced_judge.py +0 -0
  63. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/capabilities/censor.py +0 -0
  64. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/capabilities/check.py +0 -0
  65. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/capabilities/correct.py +0 -0
  66. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/capabilities/extract.py +0 -0
  67. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/capabilities/propose.py +0 -0
  68. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/capabilities/rag.py +0 -0
  69. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/capabilities/rating.py +0 -0
  70. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/capabilities/review.py +0 -0
  71. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/capabilities/task.py +0 -0
  72. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/config.py +0 -0
  73. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/constants.py +0 -0
  74. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/core.py +0 -0
  75. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/decorators.py +0 -0
  76. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/fs/__init__.py +0 -0
  77. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/fs/curd.py +0 -0
  78. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/fs/readers.py +0 -0
  79. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/journal.py +0 -0
  80. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/action.py +0 -0
  81. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/adv_kwargs_types.py +0 -0
  82. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/events.py +0 -0
  83. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/extra/__init__.py +0 -0
  84. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/extra/advanced_judge.py +0 -0
  85. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/extra/aricle_rag.py +0 -0
  86. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/extra/article_base.py +0 -0
  87. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/extra/article_essence.py +0 -0
  88. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/extra/article_outline.py +0 -0
  89. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/extra/article_proposal.py +0 -0
  90. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/extra/patches.py +0 -0
  91. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/extra/problem.py +0 -0
  92. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/extra/rag.py +0 -0
  93. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/extra/rule.py +0 -0
  94. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/generic.py +0 -0
  95. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/kwargs_types.py +0 -0
  96. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/role.py +0 -0
  97. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/task.py +0 -0
  98. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/tool.py +0 -0
  99. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/models/usages.py +0 -0
  100. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/parser.py +0 -0
  101. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/py.typed +0 -0
  102. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/rust_instances.py +0 -0
  103. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/toolboxes/__init__.py +0 -0
  104. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/toolboxes/arithmetic.py +0 -0
  105. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/toolboxes/fs.py +0 -0
  106. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/utils.py +0 -0
  107. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/workflows/__init__.py +0 -0
  108. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/workflows/articles.py +0 -0
  109. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/python/fabricatio/workflows/rag.py +0 -0
  110. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/src/bib_tools.rs +0 -0
  111. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/src/hash.rs +0 -0
  112. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/src/hbs_helpers.rs +0 -0
  113. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/src/language.rs +0 -0
  114. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/src/lib.rs +0 -0
  115. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/src/templates.rs +0 -0
  116. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/src/word_split.rs +0 -0
  117. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/as_prompt.hbs +0 -0
  118. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/binary-exploitation-ctf-solver.hbs +0 -0
  119. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/check_string.hbs +0 -0
  120. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/claude-xml.hbs +0 -0
  121. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/clean-up-code.hbs +0 -0
  122. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/co_validation.hbs +0 -0
  123. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/create_json_obj.hbs +0 -0
  124. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/cryptography-ctf-solver.hbs +0 -0
  125. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/dependencies.hbs +0 -0
  126. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/document-the-code.hbs +0 -0
  127. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/draft_rating_criteria.hbs +0 -0
  128. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/draft_rating_manual.hbs +0 -0
  129. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/draft_rating_weights_klee.hbs +0 -0
  130. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/draft_tool_usage_code.hbs +0 -0
  131. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/extract.hbs +0 -0
  132. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/extract_criteria_from_reasons.hbs +0 -0
  133. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/extract_reasons_from_examples.hbs +0 -0
  134. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/find-security-vulnerabilities.hbs +0 -0
  135. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/fix-bugs.hbs +0 -0
  136. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/fix_troubled_obj.hbs +0 -0
  137. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/fix_troubled_string.hbs +0 -0
  138. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/generic_string.hbs +0 -0
  139. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/improve-performance.hbs +0 -0
  140. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/liststr.hbs +0 -0
  141. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/make_choice.hbs +0 -0
  142. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/make_judgment.hbs +0 -0
  143. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/pathstr.hbs +0 -0
  144. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/rate_fine_grind.hbs +0 -0
  145. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/refactor.hbs +0 -0
  146. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/refined_query.hbs +0 -0
  147. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/retrieved_display.hbs +0 -0
  148. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/reverse-engineering-ctf-solver.hbs +0 -0
  149. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/review_string.hbs +0 -0
  150. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/rule_requirement.hbs +0 -0
  151. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/ruleset_requirement_breakdown.hbs +0 -0
  152. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/task_briefing.hbs +0 -0
  153. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/web-ctf-solver.hbs +0 -0
  154. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/write-git-commit.hbs +0 -0
  155. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/write-github-pull-request.hbs +0 -0
  156. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/templates/built-in/write-github-readme.hbs +0 -0
  157. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/tests/test_config.py +0 -0
  158. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/tests/test_models/test_action.py +0 -0
  159. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/tests/test_models/test_advanced.py +0 -0
  160. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/tests/test_models/test_generic.py +0 -0
  161. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/tests/test_models/test_problem.py +0 -0
  162. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/tests/test_models/test_role.py +0 -0
  163. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/tests/test_models/test_task.py +0 -0
  164. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/tests/test_models/test_tool.py +0 -0
  165. {fabricatio-0.2.12.dev3 → fabricatio-0.2.13.dev0}/tests/test_models/test_usages.py +0 -0
@@ -1982,9 +1982,11 @@ dependencies = [
1982
1982
  "clap",
1983
1983
  "dirs",
1984
1984
  "flate2",
1985
+ "regex",
1985
1986
  "reqwest",
1986
1987
  "serde_json",
1987
1988
  "tar",
1989
+ "tex2typst-rs",
1988
1990
  ]
1989
1991
 
1990
1992
  [[package]]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fabricatio
3
- Version: 0.2.12.dev3
3
+ Version: 0.2.13.dev0
4
4
  Classifier: License :: OSI Approved :: MIT License
5
5
  Classifier: Programming Language :: Rust
6
6
  Classifier: Programming Language :: Python :: 3.12
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fabricatio"
3
- version = "0.2.12-dev3"
3
+ version = "0.2.13-dev0"
4
4
  description = "A LLM multi-agent framework."
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -20,6 +20,7 @@ from fabricatio.models.extra.article_main import Article, ArticleChapter, Articl
20
20
  from fabricatio.models.extra.article_outline import ArticleOutline
21
21
  from fabricatio.models.extra.rule import RuleSet
22
22
  from fabricatio.models.kwargs_types import ChooseKwargs, LLMKwargs
23
+ from fabricatio.rust import convert_to_block_formula, convert_to_inline_formula
23
24
  from fabricatio.utils import ask_retain, ok
24
25
 
25
26
  TYPST_CITE_USAGE = (
@@ -162,6 +163,7 @@ class WriteArticleContentRAG(Action, RAG, Extract):
162
163
  )
163
164
  for p in new_subsec.paragraphs:
164
165
  p.content = cm.apply(p.content)
166
+ p.description = cm.apply(p.description)
165
167
  subsec.update_from(new_subsec)
166
168
  logger.debug(f"{subsec.title}:rpl\n{subsec.display()}")
167
169
  return subsec
@@ -286,6 +288,10 @@ class ArticleConsultRAG(Action, AdvancedRAG):
286
288
  while (req := await text("User: ").ask_async()) is not None:
287
289
  if await confirm("Empty the cm?").ask_async():
288
290
  cm.empty()
291
+
292
+ req = convert_to_block_formula(req)
293
+ req = convert_to_inline_formula(req)
294
+
289
295
  await self.clued_search(
290
296
  req,
291
297
  cm,
@@ -24,7 +24,7 @@ class AdvancedRAG(RAG):
24
24
  **kwargs: Unpack[FetchKwargs],
25
25
  ) -> CitationManager:
26
26
  """Asynchronously performs a clued search based on a given requirement and citation manager."""
27
- if max_round<=0:
27
+ if max_round <= 0:
28
28
  raise ValueError("max_round should be greater than 0")
29
29
  if max_round == 1:
30
30
  logger.warning(
@@ -33,21 +33,21 @@ class AdvancedRAG(RAG):
33
33
 
34
34
  refinery_kwargs = refinery_kwargs or {}
35
35
 
36
- for i in range(max_round + 1, 1):
37
- logger.info(f"Round [{i + 1}/{max_round}] search started.")
36
+ for i in range(1, max_round + 1):
37
+ logger.info(f"Round [{i}/{max_round}] search started.")
38
38
  ref_q = await self.arefined_query(
39
39
  f"{cm.as_prompt()}\n\nAbove is the retrieved references in the {i - 1}th RAG, now we need to perform the {i}th RAG."
40
40
  f"\n\n{requirement}",
41
41
  **refinery_kwargs,
42
42
  )
43
43
  if ref_q is None:
44
- logger.error(f"At round [{i + 1}/{max_round}] search, failed to refine the query, exit.")
44
+ logger.error(f"At round [{i}/{max_round}] search, failed to refine the query, exit.")
45
45
  return cm
46
46
  refs = await self.aretrieve(ref_q, ArticleChunk, base_accepted, **kwargs)
47
47
 
48
48
  if (max_capacity := max_capacity - len(refs)) < 0:
49
49
  cm.add_chunks(refs[0:max_capacity])
50
- logger.debug(f"At round [{i + 1}/{max_round}] search, the capacity is not enough, exit.")
50
+ logger.debug(f"At round [{i}/{max_round}] search, the capacity is not enough, exit.")
51
51
  return cm
52
52
 
53
53
  cm.add_chunks(refs)
@@ -161,13 +161,20 @@ class Article(
161
161
  "Original Article": self.display(),
162
162
  }
163
163
 
164
- def convert_tex(self) -> Self:
164
+ def convert_tex(self, paragraphs: bool = True, descriptions: bool = True) -> Self:
165
165
  """Convert tex to typst code."""
166
- for _, _, subsec in self.iter_subsections():
167
- for p in subsec.paragraphs:
168
- p.content = fix_misplaced_labels(p.content)
169
- p.content = convert_all_inline_tex(p.content)
170
- p.content = convert_all_block_tex(p.content)
166
+ if descriptions:
167
+ for a in self.iter_dfs():
168
+ a.description = fix_misplaced_labels(a.description)
169
+ a.description = convert_all_inline_tex(a.description)
170
+ a.description = convert_all_block_tex(a.description)
171
+
172
+ if paragraphs:
173
+ for _, _, subsec in self.iter_subsections():
174
+ for p in subsec.paragraphs:
175
+ p.content = fix_misplaced_labels(p.content)
176
+ p.content = convert_all_inline_tex(p.content)
177
+ p.content = convert_all_block_tex(p.content)
171
178
  return self
172
179
 
173
180
  @override
@@ -377,3 +377,8 @@ def to_metadata(data: JsonValue) -> str:
377
377
  The YAML string representation of the input data.
378
378
  """
379
379
 
380
+ def convert_to_inline_formula(string: str) -> str:
381
+ r"""Convert `$...$` to inline formula `\(...\)` and trim spaces."""
382
+
383
+ def convert_to_block_formula(string: str) -> str:
384
+ r"""Convert `$$...$$` to block formula `\[...\]` and trim spaces."""
@@ -63,14 +63,14 @@ fn convert_tex_with_pattern(pattern: &str, string: &str, block: bool) -> PyResul
63
63
  match tex2typst(tex_code) {
64
64
  Ok(converted) => {
65
65
  if block {
66
- format!("$\n{}\n{}\n$", comment(tex_code.trim()), converted)
66
+ format!("$\n{}\n$", converted)
67
67
  } else {
68
68
  format!(" ${}$ ", converted)
69
69
  }
70
70
  }
71
71
 
72
72
  Err(e) => if block {
73
- format!("$\n{}\n\"{}\"\n$", comment(tex_code), e)
73
+ format!("$\n{}\n\"{}\"\n$", comment(tex_code.trim()), e)
74
74
  } else {
75
75
  format!(" ${}$ ", tex_code)
76
76
  },
@@ -83,7 +83,7 @@ fn convert_tex_with_pattern(pattern: &str, string: &str, block: bool) -> PyResul
83
83
 
84
84
  #[pyfunction]
85
85
  fn convert_all_inline_tex(string: &str) -> PyResult<String> {
86
- convert_tex_with_pattern(r"\\\((.*?)\\\)", string, false)
86
+ convert_tex_with_pattern(r"(?s)\\\((.*?)\\\)", string, false)
87
87
  }
88
88
 
89
89
 
@@ -92,6 +92,26 @@ fn convert_all_block_tex(string: &str) -> PyResult<String> {
92
92
  convert_tex_with_pattern(r"(?s)\\\[(.*?)\\]", string, true)
93
93
  }
94
94
 
95
+ #[pyfunction]
96
+
97
+ /// Convert `$...$` to inline formula `\(...\)` and trim spaces
98
+ pub fn convert_to_inline_formula(string: &str) -> String {
99
+ let re = Regex::new(r#"\$(.*?)\$"#).unwrap();
100
+ re.replace_all(string, |caps: &regex::Captures| {
101
+ format!("\\({}\\)", caps[1].trim())
102
+ }).into_owned()
103
+ }
104
+ #[pyfunction]
105
+
106
+ /// Convert `$$...$$` to block formula `\[...\]` and trim spaces
107
+ pub fn convert_to_block_formula(string: &str) -> String {
108
+ let re = Regex::new(r#"(?s)\$\$(.*?)\$\$"#).unwrap();
109
+ re.replace_all(string, |caps: &regex::Captures| {
110
+ format!("\\[{}\\]", caps[1].trim())
111
+ }).into_owned()
112
+ }
113
+
114
+
95
115
  #[pyfunction]
96
116
  /// A func to fix labels in a string.
97
117
  pub fn fix_misplaced_labels(string: &str) -> String {
@@ -154,6 +174,9 @@ pub(crate) fn register(_: Python, m: &Bound<'_, PyModule>) -> PyResult<()> {
154
174
  m.add_function(wrap_pyfunction!(fix_misplaced_labels, m)?)?;
155
175
  m.add_function(wrap_pyfunction!(split_out_metadata, m)?)?;
156
176
  m.add_function(wrap_pyfunction!(to_metadata, m)?)?;
177
+
178
+ m.add_function(wrap_pyfunction!(convert_to_inline_formula, m)?)?;
179
+ m.add_function(wrap_pyfunction!(convert_to_block_formula, m)?)?;
157
180
  Ok(())
158
181
  }
159
182
 
Binary file