pro*_*out 6 flask python-3.x pydantic py-langchain
我正在使用文档加载器执行微服务,当尝试导入 langchain 的 UnstructedMarkdownLoader 时,应用程序无法在导入级别启动
\n$ flask --app main run --debug\nTraceback (most recent call last):\n File "venv/bin/flask", line 8, in <module>\n sys.exit(main())\n File "venv/lib/python3.9/site-packages/flask/cli.py", line 1063, in main\n cli.main()\n File "venv/lib/python3.9/site-packages/click/core.py", line 1055, in main\n rv = self.invoke(ctx)\n File "venv/lib/python3.9/site-packages/click/core.py", line 1657, in invoke\n return _process_result(sub_ctx.command.invoke(sub_ctx))\n File "venv/lib/python3.9/site-packages/click/core.py", line 1404, in invoke\n return ctx.invoke(self.callback, **ctx.params)\n File "venv/lib/python3.9/site-packages/click/core.py", line 760, in invoke\n return __callback(*args, **kwargs)\n File "venv/lib/python3.9/site-packages/click/decorators.py", line 84, in new_func\n return ctx.invoke(f, obj, *args, **kwargs)\n File "venv/lib/python3.9/site-packages/click/core.py", line 760, in invoke\n return __callback(*args, **kwargs)\n File "venv/lib/python3.9/site-packages/flask/cli.py", line 911, in run_command\n raise e from None\n File "venv/lib/python3.9/site-packages/flask/cli.py", line 897, in run_command\n app = info.load_app()\n File "venv/lib/python3.9/site-packages/flask/cli.py", line 308, in load_app\n app = locate_app(import_name, name)\n File "venv/lib/python3.9/site-packages/flask/cli.py", line 218, in locate_app\n __import__(module_name)\n File "main.py", line 5, in <module>\n from lc_indexer import index_documents\n File "lc_indexer.py", line 5, in <module>\n from langchain.document_loaders import UnstructuredMarkdownLoader\n File "venv/lib/python3.9/site-packages/langchain/__init__.py", line 6, in <module>\n from langchain.agents import MRKLChain, ReActChain, SelfAskWithSearchChain\n File "venv/lib/python3.9/site-packages/langchain/agents/__init__.py", line 2, in <module>\n from langchain.agents.agent import (\n File "venv/lib/python3.9/site-packages/langchain/agents/agent.py", line 16, in <module>\n from langchain.agents.tools import InvalidTool\n File "venv/lib/python3.9/site-packages/langchain/agents/tools.py", line 8, in <module>\n from langchain.tools.base import BaseTool, Tool, tool\n File "venv/lib/python3.9/site-packages/langchain/tools/__init__.py", line 42, in <module>\n from langchain.tools.vectorstore.tool import (\n File "venv/lib/python3.9/site-packages/langchain/tools/vectorstore/tool.py", line 13, in <module>\n from langchain.chains import RetrievalQA, RetrievalQAWithSourcesChain\n File "venv/lib/python3.9/site-packages/langchain/chains/__init__.py", line 2, in <module>\n from langchain.chains.api.base import APIChain\n File "venv/lib/python3.9/site-packages/langchain/chains/api/base.py", line 13, in <module>\n from langchain.chains.api.prompt import API_RESPONSE_PROMPT, API_URL_PROMPT\n File "venv/lib/python3.9/site-packages/langchain/chains/api/prompt.py", line 2, in <module>\n from langchain.prompts.prompt import PromptTemplate\n File "venv/lib/python3.9/site-packages/langchain/prompts/__init__.py", line 3, in <module>\n from langchain.prompts.chat import (\n File "venv/lib/python3.9/site-packages/langchain/prompts/chat.py", line 10, in <module>\n from langchain.memory.buffer import get_buffer_string\n File "venv/lib/python3.9/site-packages/langchain/memory/__init__.py", line 28, in <module>\n from langchain.memory.vectorstore import VectorStoreRetrieverMemory\n File "venv/lib/python3.9/site-packages/langchain/memory/vectorstore.py", line 10, in <module>\n from langchain.vectorstores.base import VectorStoreRetriever\n File "venv/lib/python3.9/site-packages/langchain/vectorstores/__init__.py", line 2, in <module>\n from langchain.vectorstores.analyticdb import AnalyticDB\n File "venv/lib/python3.9/site-packages/langchain/vectorstores/analyticdb.py", line 16, in <module>\n from langchain.embeddings.base import Embeddings\n File "venv/lib/python3.9/site-packages/langchain/embeddings/__init__.py", line 19, in <module>\n from langchain.embeddings.openai import OpenAIEmbeddings\n File "venv/lib/python3.9/site-packages/langchain/embeddings/openai.py", line 67, in <module>\n class OpenAIEmbeddings(BaseModel, Embeddings):\n File "pydantic/main.py", line 197, in pydantic.main.ModelMetaclass.__new__\n File "pydantic/fields.py", line 506, in pydantic.fields.ModelField.infer\n File "pydantic/fields.py", line 436, in pydantic.fields.ModelField.__init__\n File "pydantic/fields.py", line 552, in pydantic.fields.ModelField.prepare\n File "pydantic/fields.py", line 663, in pydantic.fields.ModelField._type_analysis\n File "pydantic/fields.py", line 808, in pydantic.fields.ModelField._create_sub_type\n File "pydantic/fields.py", line 436, in pydantic.fields.ModelField.__init__\n File "pydantic/fields.py", line 552, in pydantic.fields.ModelField.prepare\n File "pydantic/fields.py", line 668, in pydantic.fields.ModelField._type_analysis\n File "/home/my_username/.pyenv/versions/3.9.16/lib/python3.9/typing.py", line 852, in __subclasscheck__\n return issubclass(cls, self.__origin__)\nTypeError: issubclass() arg 1 must be a class\nRun Code Online (Sandbox Code Playgroud)\nlc_indexer.py这是langchain 导入发生的内容
$ flask --app main run --debug\nTraceback (most recent call last):\n File "venv/bin/flask", line 8, in <module>\n sys.exit(main())\n File "venv/lib/python3.9/site-packages/flask/cli.py", line 1063, in main\n cli.main()\n File "venv/lib/python3.9/site-packages/click/core.py", line 1055, in main\n rv = self.invoke(ctx)\n File "venv/lib/python3.9/site-packages/click/core.py", line 1657, in invoke\n return _process_result(sub_ctx.command.invoke(sub_ctx))\n File "venv/lib/python3.9/site-packages/click/core.py", line 1404, in invoke\n return ctx.invoke(self.callback, **ctx.params)\n File "venv/lib/python3.9/site-packages/click/core.py", line 760, in invoke\n return __callback(*args, **kwargs)\n File "venv/lib/python3.9/site-packages/click/decorators.py", line 84, in new_func\n return ctx.invoke(f, obj, *args, **kwargs)\n File "venv/lib/python3.9/site-packages/click/core.py", line 760, in invoke\n return __callback(*args, **kwargs)\n File "venv/lib/python3.9/site-packages/flask/cli.py", line 911, in run_command\n raise e from None\n File "venv/lib/python3.9/site-packages/flask/cli.py", line 897, in run_command\n app = info.load_app()\n File "venv/lib/python3.9/site-packages/flask/cli.py", line 308, in load_app\n app = locate_app(import_name, name)\n File "venv/lib/python3.9/site-packages/flask/cli.py", line 218, in locate_app\n __import__(module_name)\n File "main.py", line 5, in <module>\n from lc_indexer import index_documents\n File "lc_indexer.py", line 5, in <module>\n from langchain.document_loaders import UnstructuredMarkdownLoader\n File "venv/lib/python3.9/site-packages/langchain/__init__.py", line 6, in <module>\n from langchain.agents import MRKLChain, ReActChain, SelfAskWithSearchChain\n File "venv/lib/python3.9/site-packages/langchain/agents/__init__.py", line 2, in <module>\n from langchain.agents.agent import (\n File "venv/lib/python3.9/site-packages/langchain/agents/agent.py", line 16, in <module>\n from langchain.agents.tools import InvalidTool\n File "venv/lib/python3.9/site-packages/langchain/agents/tools.py", line 8, in <module>\n from langchain.tools.base import BaseTool, Tool, tool\n File "venv/lib/python3.9/site-packages/langchain/tools/__init__.py", line 42, in <module>\n from langchain.tools.vectorstore.tool import (\n File "venv/lib/python3.9/site-packages/langchain/tools/vectorstore/tool.py", line 13, in <module>\n from langchain.chains import RetrievalQA, RetrievalQAWithSourcesChain\n File "venv/lib/python3.9/site-packages/langchain/chains/__init__.py", line 2, in <module>\n from langchain.chains.api.base import APIChain\n File "venv/lib/python3.9/site-packages/langchain/chains/api/base.py", line 13, in <module>\n from langchain.chains.api.prompt import API_RESPONSE_PROMPT, API_URL_PROMPT\n File "venv/lib/python3.9/site-packages/langchain/chains/api/prompt.py", line 2, in <module>\n from langchain.prompts.prompt import PromptTemplate\n File "venv/lib/python3.9/site-packages/langchain/prompts/__init__.py", line 3, in <module>\n from langchain.prompts.chat import (\n File "venv/lib/python3.9/site-packages/langchain/prompts/chat.py", line 10, in <module>\n from langchain.memory.buffer import get_buffer_string\n File "venv/lib/python3.9/site-packages/langchain/memory/__init__.py", line 28, in <module>\n from langchain.memory.vectorstore import VectorStoreRetrieverMemory\n File "venv/lib/python3.9/site-packages/langchain/memory/vectorstore.py", line 10, in <module>\n from langchain.vectorstores.base import VectorStoreRetriever\n File "venv/lib/python3.9/site-packages/langchain/vectorstores/__init__.py", line 2, in <module>\n from langchain.vectorstores.analyticdb import AnalyticDB\n File "venv/lib/python3.9/site-packages/langchain/vectorstores/analyticdb.py", line 16, in <module>\n from langchain.embeddings.base import Embeddings\n File "venv/lib/python3.9/site-packages/langchain/embeddings/__init__.py", line 19, in <module>\n from langchain.embeddings.openai import OpenAIEmbeddings\n File "venv/lib/python3.9/site-packages/langchain/embeddings/openai.py", line 67, in <module>\n class OpenAIEmbeddings(BaseModel, Embeddings):\n File "pydantic/main.py", line 197, in pydantic.main.ModelMetaclass.__new__\n File "pydantic/fields.py", line 506, in pydantic.fields.ModelField.infer\n File "pydantic/fields.py", line 436, in pydantic.fields.ModelField.__init__\n File "pydantic/fields.py", line 552, in pydantic.fields.ModelField.prepare\n File "pydantic/fields.py", line 663, in pydantic.fields.ModelField._type_analysis\n File "pydantic/fields.py", line 808, in pydantic.fields.ModelField._create_sub_type\n File "pydantic/fields.py", line 436, in pydantic.fields.ModelField.__init__\n File "pydantic/fields.py", line 552, in pydantic.fields.ModelField.prepare\n File "pydantic/fields.py", line 668, in pydantic.fields.ModelField._type_analysis\n File "/home/my_username/.pyenv/versions/3.9.16/lib/python3.9/typing.py", line 852, in __subclasscheck__\n return issubclass(cls, self.__origin__)\nTypeError: issubclass() arg 1 must be a class\nRun Code Online (Sandbox Code Playgroud)\n该文件是从测试项目复制的,在尝试该项目时根本不会发生此类错误,但它是从 CLI 进行测试的,因此可能会更改此处的某些内容。
\n已经尝试将这些函数和导入复制到main.py文件中,但我得到了同样的错误。
我尝试在 中注释函数的导入lc_indexer.py和调用,并且它启动没有问题。index_documentsmain.py
这里问题的根源是什么?Langchain 要求已安装
\n小智 13
尝试将typing-extensions模块降级回版本4.5.0。
4.6.0在 Poetry 更新依赖项后,我刚刚遇到了版本问题,该问题破坏了我的项目执行。降级了,现在又可以工作了。
小智 5
花了很多时间后我找到了解决方案。我尝试降级TypingExtension==4.5.0 和更多选项,但这对我不起作用。
解决方案是安装这个:
pip install pydantic==1.10.8
pip installtyping-inspect==0.8.0typing_extensions==4.5。
pip 安装 chromadb==0.3.26
| 归档时间: |
|
| 查看次数: |
4829 次 |
| 最近记录: |