You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

pyproject.toml 5.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. [project]
  2. name = "ragflow"
  3. version = "0.20.2"
  4. description = "[RAGFlow](https://ragflow.io/) is an open-source RAG (Retrieval-Augmented Generation) engine based on deep document understanding. It offers a streamlined RAG workflow for businesses of any scale, combining LLM (Large Language Models) to provide truthful question-answering capabilities, backed by well-founded citations from various complex formatted data."
  5. authors = [{ name = "Zhichang Yu", email = "yuzhichang@gmail.com" }]
  6. license-files = ["LICENSE"]
  7. readme = "README.md"
  8. requires-python = ">=3.10,<3.13"
  9. dependencies = [
  10. "datrie==0.8.2",
  11. "akshare>=1.15.78,<2.0.0",
  12. "azure-storage-blob==12.22.0",
  13. "azure-identity==1.17.1",
  14. "azure-storage-file-datalake==12.16.0",
  15. "anthropic==0.34.1",
  16. "arxiv==2.1.3",
  17. "aspose-slides>=24.9.0,<25.0.0; platform_machine == 'x86_64' or (sys_platform == 'darwin' and platform_machine == 'arm64')",
  18. "beartype>=0.18.5,<0.19.0",
  19. "bio==1.7.1",
  20. "blinker==1.7.0",
  21. "boto3==1.34.140",
  22. "botocore==1.34.140",
  23. "cachetools==5.3.3",
  24. "chardet==5.2.0",
  25. "cn2an==0.5.22",
  26. "cohere==5.6.2",
  27. "Crawl4AI>=0.3.8",
  28. "dashscope==1.20.11",
  29. "deepl==1.18.0",
  30. "demjson3==3.0.6",
  31. "discord-py==2.3.2",
  32. "duckduckgo-search>=7.2.0,<8.0.0",
  33. "editdistance==0.8.1",
  34. "elastic-transport==8.12.0",
  35. "elasticsearch==8.12.1",
  36. "elasticsearch-dsl==8.12.0",
  37. "filelock==3.15.4",
  38. "flask==3.0.3",
  39. "flask-cors==5.0.0",
  40. "flask-login==0.6.3",
  41. "flask-session==0.8.0",
  42. "google-search-results==2.4.2",
  43. "groq==0.9.0",
  44. "hanziconv==0.3.2",
  45. "html-text==0.6.2",
  46. "httpx[socks]==0.27.2",
  47. "huggingface-hub>=0.25.0,<0.26.0",
  48. "infinity-sdk==0.6.0-dev4",
  49. "infinity-emb>=0.0.66,<0.0.67",
  50. "itsdangerous==2.1.2",
  51. "json-repair==0.35.0",
  52. "markdown==3.6",
  53. "markdown-to-json==2.1.1",
  54. "minio==7.2.4",
  55. "mistralai==0.4.2",
  56. "nltk==3.9.1",
  57. "numpy>=1.26.0,<2.0.0",
  58. "ollama==0.2.1",
  59. "onnxruntime==1.19.2; sys_platform == 'darwin' or platform_machine != 'x86_64'",
  60. "onnxruntime-gpu==1.19.2; sys_platform != 'darwin' and platform_machine == 'x86_64'",
  61. "openai>=1.45.0",
  62. "opencv-python==4.10.0.84",
  63. "opencv-python-headless==4.10.0.84",
  64. "openpyxl>=3.1.0,<4.0.0",
  65. "opendal>=0.45.0,<0.46.0",
  66. "ormsgpack==1.5.0",
  67. "pandas>=2.2.0,<3.0.0",
  68. "pdfplumber==0.10.4",
  69. "peewee==3.17.1",
  70. "pillow==10.4.0",
  71. "protobuf==5.27.2",
  72. "psycopg2-binary==2.9.9",
  73. "pyclipper==1.3.0.post5",
  74. "pycryptodomex==3.20.0",
  75. "pymysql>=1.1.1,<2.0.0",
  76. "pypdf==6.0.0",
  77. "python-dotenv==1.0.1",
  78. "python-dateutil==2.8.2",
  79. "python-pptx>=1.0.2,<2.0.0",
  80. "pywencai==0.12.2",
  81. "qianfan==0.4.6",
  82. "ranx==0.3.20",
  83. "readability-lxml==0.8.1",
  84. "valkey==6.0.2",
  85. "requests==2.32.2",
  86. "replicate==0.31.0",
  87. "roman-numbers==1.0.2",
  88. "ruamel-base==1.0.0",
  89. "ruamel-yaml>=0.18.6,<0.19.0",
  90. "scholarly==1.7.11",
  91. "scikit-learn==1.5.0",
  92. "selenium==4.22.0",
  93. "selenium-wire==5.1.0",
  94. "setuptools>=75.2.0,<76.0.0",
  95. "shapely==2.0.5",
  96. "six==1.16.0",
  97. "strenum==0.4.15",
  98. "tabulate==0.9.0",
  99. "tavily-python==0.5.1",
  100. "tencentcloud-sdk-python==3.0.1215",
  101. "tika==2.6.0",
  102. "tiktoken==0.7.0",
  103. "umap_learn==0.5.6",
  104. "vertexai==1.64.0",
  105. "volcengine==1.0.194",
  106. "voyageai==0.2.3",
  107. "webdriver-manager==4.0.1",
  108. "werkzeug==3.0.6",
  109. "wikipedia==1.4.0",
  110. "word2number==1.1",
  111. "xgboost==1.6.0",
  112. "xpinyin==0.7.6",
  113. "yfinance==0.2.65",
  114. "zhipuai==2.0.1",
  115. "google-generativeai>=0.8.1,<0.9.0",
  116. "python-docx>=1.1.2,<2.0.0",
  117. "pypdf2>=3.0.1,<4.0.0",
  118. "graspologic>=3.4.1,<4.0.0",
  119. "mini-racer>=0.12.4,<0.13.0",
  120. "pyodbc>=5.2.0,<6.0.0",
  121. "pyicu>=2.13.1,<3.0.0",
  122. "flasgger>=0.9.7.1,<0.10.0",
  123. "xxhash>=3.5.0,<4.0.0",
  124. "trio>=0.29.0",
  125. "langfuse>=2.60.0",
  126. "debugpy>=1.8.13",
  127. "mcp>=1.9.4",
  128. "opensearch-py==2.7.1",
  129. "pluginlib==0.9.4",
  130. "click>=8.1.8",
  131. "python-calamine>=0.4.0",
  132. "litellm>=1.74.15.post1",
  133. "flask-mail>=0.10.0",
  134. ]
  135. [project.optional-dependencies]
  136. full = [
  137. "bcembedding==0.1.5",
  138. "fastembed>=0.3.6,<0.4.0; sys_platform == 'darwin' or platform_machine != 'x86_64'",
  139. "fastembed-gpu>=0.3.6,<0.4.0; sys_platform != 'darwin' and platform_machine == 'x86_64'",
  140. "flagembedding==1.2.10",
  141. "torch>=2.5.0,<3.0.0",
  142. "transformers>=4.35.0,<5.0.0",
  143. ]
  144. [dependency-groups]
  145. test = [
  146. "hypothesis>=6.132.0",
  147. "openpyxl>=3.1.5",
  148. "pillow>=10.4.0",
  149. "pytest>=8.3.5",
  150. "python-docx>=1.1.2",
  151. "python-pptx>=1.0.2",
  152. "reportlab>=4.4.1",
  153. "requests>=2.32.2",
  154. "requests-toolbelt>=1.0.0",
  155. ]
  156. [tool.setuptools]
  157. packages = [
  158. 'agent',
  159. 'agentic_reasoning',
  160. 'api',
  161. 'deepdoc',
  162. 'graphrag',
  163. 'intergrations.chatgpt-on-wechat.plugins',
  164. 'mcp.server',
  165. 'rag',
  166. 'sdk.python.ragflow_sdk',
  167. ]
  168. [[tool.uv.index]]
  169. url = "https://mirrors.aliyun.com/pypi/simple"
  170. [tool.ruff]
  171. line-length = 200
  172. exclude = [".venv", "rag/svr/discord_svr.py"]
  173. [tool.ruff.lint]
  174. extend-select = ["ASYNC", "ASYNC1"]
  175. ignore = ["E402"]
  176. [tool.pytest.ini_options]
  177. markers = [
  178. "p1: high priority test cases",
  179. "p2: medium priority test cases",
  180. "p3: low priority test cases",
  181. ]