pyproject.toml 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. [tool.poetry]
  2. name = "embedchain"
  3. version = "0.1.80"
  4. description = "Simplest open source retrieval(RAG) framework"
  5. authors = [
  6. "Taranjeet Singh <taranjeet@embedchain.ai>",
  7. "Deshraj Yadav <deshraj@embedchain.ai>",
  8. ]
  9. license = "Apache License"
  10. readme = "README.md"
  11. exclude = [
  12. "db",
  13. "configs",
  14. "notebooks"
  15. ]
  16. packages = [
  17. { include = "embedchain" },
  18. ]
  19. [build-system]
  20. build-backend = "poetry.core.masonry.api"
  21. requires = ["poetry-core"]
  22. [tool.ruff]
  23. select = ["ASYNC", "E", "F"]
  24. ignore = []
  25. fixable = ["ALL"]
  26. unfixable = []
  27. exclude = [
  28. ".bzr",
  29. ".direnv",
  30. ".eggs",
  31. ".git",
  32. ".git-rewrite",
  33. ".hg",
  34. ".mypy_cache",
  35. ".nox",
  36. ".pants.d",
  37. ".pytype",
  38. ".ruff_cache",
  39. ".svn",
  40. ".tox",
  41. ".venv",
  42. "__pypackages__",
  43. "_build",
  44. "buck-out",
  45. "build",
  46. "dist",
  47. "node_modules",
  48. "venv"
  49. ]
  50. line-length = 120
  51. dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
  52. target-version = "py38"
  53. [tool.ruff.mccabe]
  54. max-complexity = 10
  55. # Ignore `E402` (import violations) in all `__init__.py` files, and in `path/to/file.py`.
  56. [tool.ruff.per-file-ignores]
  57. "embedchain/__init__.py" = ["E401"]
  58. [tool.black]
  59. line-length = 120
  60. target-version = ["py38", "py39", "py310", "py311"]
  61. include = '\.pyi?$'
  62. exclude = '''
  63. /(
  64. \.eggs
  65. | \.git
  66. | \.hg
  67. | \.mypy_cache
  68. | \.nox
  69. | \.pants.d
  70. | \.pytype
  71. | \.ruff_cache
  72. | \.svn
  73. | \.tox
  74. | \.venv
  75. | __pypackages__
  76. | _build
  77. | buck-out
  78. | build
  79. | dist
  80. | node_modules
  81. | venv
  82. )/
  83. '''
  84. [tool.black.format]
  85. color = true
  86. [tool.poetry.dependencies]
  87. python = ">=3.9,<3.12"
  88. python-dotenv = "^1.0.0"
  89. langchain = "^0.1.4"
  90. requests = "^2.31.0"
  91. openai = ">=1.1.1"
  92. chromadb = "^0.4.17"
  93. posthog = "^3.0.2"
  94. rich = "^13.7.0"
  95. beautifulsoup4 = "^4.12.2"
  96. pypdf = "^3.11.0"
  97. gptcache = "^0.1.43"
  98. pysbd = "^0.3.4"
  99. tiktoken = { version = "^0.5.2", optional = true }
  100. youtube-transcript-api = { version = "^0.6.1", optional = true }
  101. pytube = { version = "^15.0.0", optional = true }
  102. duckduckgo-search = { version = "^3.8.5", optional = true }
  103. sentence-transformers = { version = "^2.2.2", optional = true }
  104. torch = { version = "2.0.0", optional = true }
  105. # Torch 2.0.1 is not compatible with poetry (https://github.com/pytorch/pytorch/issues/100974)
  106. gpt4all = { version = "2.0.2", optional = true }
  107. # 1.0.9 is not working for some users (https://github.com/nomic-ai/gpt4all/issues/1394)
  108. opensearch-py = { version = "2.3.1", optional = true }
  109. elasticsearch = { version = "^8.9.0", optional = true }
  110. flask = { version = "^2.3.3", optional = true }
  111. twilio = { version = "^8.5.0", optional = true }
  112. fastapi-poe = { version = "0.0.16", optional = true }
  113. discord = { version = "^2.3.2", optional = true }
  114. slack-sdk = { version = "3.21.3", optional = true }
  115. cohere = { version = "^4.27", optional = true }
  116. together = { version = "^0.2.8", optional = true }
  117. weaviate-client = { version = "^3.24.1", optional = true }
  118. docx2txt = { version = "^0.8", optional = true }
  119. pinecone-client = { version = "^3.0.0", optional = true }
  120. pinecone-text = { version = "^0.8.0", optional = true }
  121. qdrant-client = { version = "1.6.3", optional = true }
  122. unstructured = {extras = ["local-inference", "all-docs"], version = "^0.10.18", optional = true}
  123. huggingface_hub = { version = "^0.17.3", optional = true }
  124. pymilvus = { version = "2.3.1", optional = true }
  125. google-cloud-aiplatform = { version = "^1.26.1", optional = true }
  126. replicate = { version = "^0.15.4", optional = true }
  127. schema = "^0.7.5"
  128. psycopg = { version = "^3.1.12", optional = true }
  129. psycopg-binary = { version = "^3.1.12", optional = true }
  130. psycopg-pool = { version = "^3.1.8", optional = true }
  131. mysql-connector-python = { version = "^8.1.0", optional = true }
  132. gitpython = { version = "^3.1.38", optional = true }
  133. yt_dlp = { version = "^2023.11.14", optional = true }
  134. PyGithub = { version = "^1.59.1", optional = true }
  135. feedparser = { version = "^6.0.10", optional = true }
  136. newspaper3k = { version = "^0.2.8", optional = true }
  137. listparser = { version = "^0.19", optional = true }
  138. google-generativeai = { version = "^0.3.0", optional = true }
  139. modal = { version = "^0.56.4329", optional = true }
  140. dropbox = { version = "^11.36.2", optional = true }
  141. google-api-python-client = { version = "^2.111.0", optional = true }
  142. google-auth-oauthlib = { version = "^1.2.0", optional = true }
  143. google-auth = { version = "^2.25.2", optional = true }
  144. google-auth-httplib2 = { version = "^0.2.0", optional = true }
  145. google-api-core = { version = "^2.15.0", optional = true }
  146. boto3 = { version = "^1.34.20", optional = true }
  147. langchain-mistralai = { version = "^0.0.3", optional = true }
  148. langchain-openai = "^0.0.5"
  149. langchain-google-vertexai = { version = "^0.0.5", optional = true }
  150. [tool.poetry.group.dev.dependencies]
  151. black = "^23.3.0"
  152. pre-commit = "^3.2.2"
  153. ruff = "^0.1.11"
  154. pytest = "^7.3.1"
  155. pytest-mock = "^3.10.0"
  156. pytest-env = "^0.8.1"
  157. click = "^8.1.3"
  158. isort = "^5.12.0"
  159. pytest-cov = "^4.1.0"
  160. responses = "^0.23.3"
  161. mock = "^5.1.0"
  162. pytest-asyncio = "^0.21.1"
  163. [tool.poetry.extras]
  164. streamlit = ["streamlit"]
  165. opensource = ["sentence-transformers", "torch", "gpt4all"]
  166. elasticsearch = ["elasticsearch"]
  167. opensearch = ["opensearch-py"]
  168. poe = ["fastapi-poe"]
  169. discord = ["discord"]
  170. slack = ["slack-sdk", "flask"]
  171. whatsapp = ["twilio", "flask"]
  172. weaviate = ["weaviate-client"]
  173. pinecone = ["pinecone-client", "pinecone-text"]
  174. qdrant = ["qdrant-client"]
  175. huggingface_hub=["huggingface_hub"]
  176. cohere = ["cohere"]
  177. together = ["together"]
  178. milvus = ["pymilvus"]
  179. dataloaders=[
  180. "youtube-transcript-api",
  181. "docx2txt",
  182. "duckduckgo-search",
  183. "pytube",
  184. "sentence-transformers",
  185. "unstructured",
  186. ]
  187. vertexai = ["langchain-google-vertexai"]
  188. llama2 = ["replicate"]
  189. gmail = [
  190. "requests",
  191. "google-api-python-client",
  192. "google-auth",
  193. "google-auth-oauthlib",
  194. "google-auth-httplib2",
  195. "google-api-core",
  196. ]
  197. googledrive = ["google-api-python-client", "google-auth-oauthlib", "google-auth-httplib2"]
  198. postgres = ["psycopg", "psycopg-binary", "psycopg-pool"]
  199. mysql = ["mysql-connector-python"]
  200. github = ["PyGithub", "gitpython"]
  201. youtube = [
  202. "yt_dlp",
  203. "youtube-transcript-api",
  204. ]
  205. rss_feed = [
  206. "feedparser",
  207. "listparser",
  208. "newspaper3k"
  209. ]
  210. google = ["google-generativeai"]
  211. modal = ["modal"]
  212. dropbox = ["dropbox"]
  213. aws_bedrock = ["boto3"]
  214. mistralai = ["langchain-mistralai"]
  215. [tool.poetry.group.docs.dependencies]
  216. [tool.poetry.scripts]
  217. ec = "embedchain.cli:cli"