PaddlePaddle / PaddleNLP

👑 Easy-to-use and powerful NLP and LLM library with 🤗 Awesome model zoo, supporting wide-range of NLP tasks from research to industrial applications, including 🗂Text Classification, 🔍 Neural Search, ❓ Question Answering, ℹ️ Information Extraction, 📄 Document Intelligence, 💌 Sentiment Analysis etc.
https://paddlenlp.readthedocs.io
Apache License 2.0
11.75k stars 2.87k forks source link

[Question]: windows下通过pipelines部署语义检索系统PretrainedConfig报错 #4251

Closed yunshifengyu closed 1 year ago

yunshifengyu commented 1 year ago

请提出你的问题

按照WINDOWS环境下搭建端到端语义检索系统: 运行python examples/semantic-search/semantic_search_example.py --device gpu时报错

Traceback (most recent call last): File "examples/semantic-search/semantic_search_example.py", line 206, in semantic_search_tutorial() File "examples/semantic-search/semantic_search_example.py", line 183, in semantic_search_tutorial retriever = get_faiss_retriever(use_gpu) File "examples/semantic-search/semantic_search_example.py", line 69, in get_faiss_retriever retriever = DensePassageRetriever( File "C:\Users\anaconda3\envs\paddle\lib\site-packages\pipelines\nodes\retriever\dense.py", line 149, in init self.ernie_dual_encoder = ErnieDualEncoder( File "C:\Users\anaconda3\envs\paddle\lib\site-packages\paddlenlp\transformers\semantic_search\modeling.py", line 94, in init self.query_ernie = ErnieEncoder.from_pretrained(query_model_name_or_path, output_emb_size=output_emb_size) File "C:\Users\anaconda3\envs\paddle\lib\site-packages\paddlenlp\transformers\model_utils.py", line 435, in from_pretrained return cls.from_pretrained_v2(pretrained_model_name_or_path, from_hf_hub=from_hf_hub, *args, kwargs) File "C:\Users\anaconda3\envs\paddle\lib\site-packages\paddlenlp\transformers\model_utils.py", line 1254, in from_pretrained_v2 model = cls(config, *init_args, *model_kwargs) File "C:\Users\anaconda3\envs\paddle\lib\site-packages\paddlenlp\transformers\utils.py", line 170, in impl init_func(self, args, kwargs) File "C:\Users\anaconda3\envs\paddle\lib\site-packages\paddlenlp\transformers\semantic_search\modeling.py", line 26, in init super(ErnieEncoder, self).init() File "C:\Users\anaconda3\envs\paddle\lib\site-packages\paddlenlp\transformers\utils.py", line 170, in impl init_func(self, *args, *kwargs) File "C:\Users\anaconda3\envs\paddle\lib\site-packages\paddlenlp\transformers\utils.py", line 170, in impl init_func(self, args, **kwargs) File "C:\Users\anaconda3\envs\paddle\lib\site-packages\paddlenlp\transformers\model_utils.py", line 261, in init raise ValueError( ValueError: PretrainedConfig instance not found in the arguments, you can set it as args or kwargs with config field

运行环境: windows10 python3.8 cuda10.2 paddlenlp2.4.8

w5688414 commented 1 year ago

您好,PretrainedConfig进行了较大的升级,目前可以先安装低版本的paddlenlp

yunshifengyu commented 1 year ago

您好,PretrainedConfig进行了较大的升级,目前可以先安装低版本的paddlenlp

您好,我将paddlenlp降至2.4.5可以运行通过刚刚命令。但是当我运行到启动webUI环节时, 运行python -m streamlit run ui/webapp_semantic_search.py --server.port 8502

服务报错: File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\streamlit\scriptrunner\script_runner.py", line 475, in _run_script exec(code, module.dict) File "C:\PaddleNLP-develop\pipelines\ui\webapp_semantic_search.py", line 28, in from utils import pipelines_is_ready, semantic_search, send_feedback, upload_doc, pipelines_version, get_backlink File "ui\utils.py", line 25, in from pipelines.document_stores import ElasticsearchDocumentStore, MilvusDocumentStore File "C:\PaddleNLP-develop\pipelines\pipelines__init.py", line 39, in from pipelines import pipelines, utils File "C:\PaddleNLP-develop\pipelines\pipelines\pipelines\init.py", line 15, in from pipelines.pipelines.base import Pipeline, RootNode File "C:\PaddleNLP-develop\pipelines\pipelines\pipelines\base.py", line 55, in from pipelines.nodes.base import BaseComponent File "C:\PaddleNLP-develop\pipelines\pipelines\nodes\init.py", line 39, in from pipelines.nodes.sentiment_analysis import ( File "C:\PaddleNLP-develop\pipelines\pipelines\nodes\sentiment_analysis\init__.py", line 17, in from pipelines.nodes.sentiment_analysis.senta_visualization import SentaVisualization File "C:\PaddleNLP-develop\pipelines\pipelines\nodes\sentiment_analysis\senta_visualization.py", line 23, in import wordcloud ModuleNotFoundError: No module named 'wordcloud'

请问此依赖问题如何解决? 我当前环境如下: paddle-pipelines 0.4.0 paddle2onnx 1.0.5 paddlefsl 1.1.0 paddleocr 2.6.1.2 paddlepaddle 2.4.1 感谢您的帮助

w5688414 commented 1 year ago
pip install wordcloud

您好,PretrainedConfig进行了较大的升级,目前可以先安装低版本的paddlenlp

您好,我将paddlenlp降至2.4.5可以运行通过刚刚命令。但是当我运行到启动webUI环节时, 运行python -m streamlit run ui/webapp_semantic_search.py --server.port 8502

服务报错: File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\streamlit\scriptrunner\script_runner.py", line 475, in _run_script exec(code, module.dict) File "C:\PaddleNLP-develop\pipelines\ui\webapp_semantic_search.py", line 28, in from utils import pipelines_is_ready, semantic_search, send_feedback, upload_doc, pipelines_version, get_backlink File "ui\utils.py", line 25, in from pipelines.document_stores import ElasticsearchDocumentStore, MilvusDocumentStore File "C:\PaddleNLP-develop\pipelines\pipelinesinit.py", line 39, in from pipelines import pipelines, utils File "C:\PaddleNLP-develop\pipelines\pipelines\pipelinesinit.py", line 15, in from pipelines.pipelines.base import Pipeline, RootNode File "C:\PaddleNLP-develop\pipelines\pipelines\pipelines\base.py", line 55, in from pipelines.nodes.base import BaseComponent File "C:\PaddleNLP-develop\pipelines\pipelines\nodesinit.py", line 39, in from pipelines.nodes.sentiment_analysis import ( File "C:\PaddleNLP-develop\pipelines\pipelines\nodes\sentiment_analysisinit.py", line 17, in from pipelines.nodes.sentiment_analysis.senta_visualization import SentaVisualization File "C:\PaddleNLP-develop\pipelines\pipelines\nodes\sentiment_analysis\senta_visualization.py", line 23, in import wordcloud ModuleNotFoundError: No module named 'wordcloud'

请问此依赖问题如何解决? 我当前环境如下: paddle-pipelines 0.4.0 paddle2onnx 1.0.5 paddlefsl 1.1.0 paddleocr 2.6.1.2 paddlepaddle 2.4.1 感谢您的帮助

yunshifengyu commented 1 year ago

您好,PretrainedConfig进行了较大的升级,目前可以先安装低版本的paddlenlp

我在使用索引服务阶段遇到了错误。首先在将文档写入ANN检索库时, 运行python utils/offline_ann.py --index_name dureader_robust_query_encoder --doc_dir data/dureader_dev 得到了 INFO - pipelines.utils.logger - Logged parameters: {'processor': 'TextSimilarityProcessor', 'tokenizer': 'NoneType', 'max_seq_len': '0', 'dev_split': '0.1'} INFO - pipelines.document_stores.elasticsearch - Updating embeddings for all 1398 docs ... Updating embeddings: 10000 Docs [02:06, 78.77 Docs/s] 结果,但是当进入前端进行检索时好像检索库中没有内容。

RestAPI端报错: query query='衡量酒水的价格的因素有哪些?' params={'filters': {}, 'Retriever': {'top_k': 30}, 'Ranker': {'top_k': 3}} debug=False 12/28/2022 10:52:51 AM {'info': 'No documents with embeddings.'} 12/28/2022 10:52:51 AM Likely some of your stored documents don't have embeddings. try to run the document store's update_embeddings() method.

INFO: 127.0.0.1:65529 - "POST /query HTTP/1.1" 500 Internal Server Error ERROR: Exception in ASGI application Traceback (most recent call last): File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\uvicorn\protocols\http\h11_impl.py", line 408, in run_asgi self.scope, self.receive, self.send File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\uvicorn\middleware\proxy_headers.py", line 78, in call return await self.app(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\fastapi\applications.py", line 270, in call await super().call(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\applications.py", line 124, in call await self.middleware_stack(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\middleware\errors.py", line 184, in call raise exc File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\middleware\errors.py", line 162, in call await self.app(scope, receive, _send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\middleware\cors.py", line 84, in call await self.app(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\middleware\exceptions.py", line 79, in call raise exc File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\middleware\exceptions.py", line 68, in call await self.app(scope, receive, sender) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 21, in call raise e File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 18, in call await self.app(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\routing.py", line 706, in call await route.handle(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\routing.py", line 276, in handle await self.app(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\routing.py", line 66, in app response = await func(request) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\fastapi\routing.py", line 262, in app is_coroutine=is_coroutine, File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\fastapi\routing.py", line 132, in serialize_response field.validate, response_content, {}, loc=("response",) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\concurrency.py", line 41, in run_in_threadpool return await anyio.to_thread.run_sync(func, args) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\anyio\to_thread.py", line 32, in run_sync func, args, cancellable=cancellable, limiter=limiter File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\anyio_backends_asyncio.py", line 937, in run_sync_in_worker_thread return await future File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\anyio_backends_asyncio.py", line 867, in run result = context.run(func, *args) File "pydantic\fields.py", line 884, in pydantic.fields.ModelField.validate File "pydantic\fields.py", line 1101, in pydantic.fields.ModelField._validate_singleton File "pydantic\fields.py", line 1148, in pydantic.fields.ModelField._apply_validators File "pydantic\class_validators.py", line 318, in pydantic.class_validators._generic_validator_basic.lambda13 File "pydantic\main.py", line 711, in pydantic.main.BaseModel.validate File "pydantic\main.py", line 340, in pydantic.main.BaseModel.init File "pydantic\main.py", line 1076, in pydantic.main.validate_model File "pydantic\fields.py", line 895, in pydantic.fields.ModelField.validate File "pydantic\fields.py", line 928, in pydantic.fields.ModelField._validate_sequence_like File "pydantic\fields.py", line 1094, in pydantic.fields.ModelField._validate_singleton File "pydantic\fields.py", line 884, in pydantic.fields.ModelField.validate File "pydantic\fields.py", line 1101, in pydantic.fields.ModelField._validate_singleton File "pydantic\fields.py", line 1148, in pydantic.fields.ModelField._apply_validators File "pydantic\class_validators.py", line 318, in pydantic.class_validators._generic_validator_basic.lambda13 File "pydantic\main.py", line 711, in pydantic.main.BaseModel.validate File "pydantic\main.py", line 340, in pydantic.main.BaseModel.init File "pydantic\main.py", line 1076, in pydantic.main.validate_model File "pydantic\fields.py", line 860, in pydantic.fields.ModelField.validate pydantic.errors.ConfigError: field "meta" not yet prepared so type is still a ForwardRef, you might need to call DocumentSerialized.update_forward_refs(). 请问应该如何解决?再次感谢您的回复

w5688414 commented 1 year ago

这个怎么复现呢?是按照readme操作引起的错误吗?

您好,PretrainedConfig进行了较大的升级,目前可以先安装低版本的paddlenlp

我在使用索引服务阶段遇到了错误。首先在将文档写入ANN检索库时, 运行python utils/offline_ann.py --index_name dureader_robust_query_encoder --doc_dir data/dureader_dev 得到了 INFO - pipelines.utils.logger - Logged parameters: {'processor': 'TextSimilarityProcessor', 'tokenizer': 'NoneType', 'max_seq_len': '0', 'dev_split': '0.1'} INFO - pipelines.document_stores.elasticsearch - Updating embeddings for all 1398 docs ... Updating embeddings: 10000 Docs [02:06, 78.77 Docs/s] 结果,但是当进入前端进行检索时好像检索库中没有内容。

RestAPI端报错: query query='衡量酒水的价格的因素有哪些?' params={'filters': {}, 'Retriever': {'top_k': 30}, 'Ranker': {'top_k': 3}} debug=False 12/28/2022 10:52:51 AM {'info': 'No documents with embeddings.'} 12/28/2022 10:52:51 AM Likely some of your stored documents don't have embeddings. try to run the document store's update_embeddings() method.

INFO: 127.0.0.1:65529 - "POST /query HTTP/1.1" 500 Internal Server Error ERROR: Exception in ASGI application Traceback (most recent call last): File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\uvicorn\protocols\http\h11_impl.py", line 408, in run_asgi self.scope, self.receive, self.send File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\uvicorn\middleware\proxy_headers.py", line 78, in call return await self.app(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\fastapi\applications.py", line 270, in call await super().call(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\applications.py", line 124, in call await self.middleware_stack(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\middleware\errors.py", line 184, in call raise exc File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\middleware\errors.py", line 162, in call await self.app(scope, receive, _send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\middleware\cors.py", line 84, in call await self.app(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\middleware\exceptions.py", line 79, in call raise exc File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\middleware\exceptions.py", line 68, in call await self.app(scope, receive, sender) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 21, in call raise e File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 18, in call await self.app(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\routing.py", line 706, in call await route.handle(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\routing.py", line 276, in handle await self.app(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\routing.py", line 66, in app response = await func(request) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\fastapi\routing.py", line 262, in app is_coroutine=is_coroutine, File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\fastapi\routing.py", line 132, in serialize_response field.validate, response_content, {}, loc=("response",) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\concurrency.py", line 41, in run_in_threadpool return await anyio.to_thread.run_sync(func, args) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\anyio\to_thread.py", line 32, in run_sync func, args, cancellable=cancellable, limiter=limiter File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\anyio_backends_asyncio.py", line 937, in run_sync_in_worker_thread return await future File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\anyio_backends_asyncio.py", line 867, in run result = context.run(func, *args) File "pydantic\fields.py", line 884, in pydantic.fields.ModelField.validate File "pydantic\fields.py", line 1101, in pydantic.fields.ModelField._validate_singleton File "pydantic\fields.py", line 1148, in pydantic.fields.ModelField._apply_validators File "pydantic\class_validators.py", line 318, in pydantic.class_validators._generic_validator_basic.lambda13 File "pydantic\main.py", line 711, in pydantic.main.BaseModel.validate File "pydantic\main.py", line 340, in pydantic.main.BaseModel.init File "pydantic\main.py", line 1076, in pydantic.main.validate_model File "pydantic\fields.py", line 895, in pydantic.fields.ModelField.validate File "pydantic\fields.py", line 928, in pydantic.fields.ModelField._validate_sequence_like File "pydantic\fields.py", line 1094, in pydantic.fields.ModelField._validate_singleton File "pydantic\fields.py", line 884, in pydantic.fields.ModelField.validate File "pydantic\fields.py", line 1101, in pydantic.fields.ModelField._validate_singleton File "pydantic\fields.py", line 1148, in pydantic.fields.ModelField._apply_validators File "pydantic\class_validators.py", line 318, in pydantic.class_validators._generic_validator_basic.lambda13 File "pydantic\main.py", line 711, in pydantic.main.BaseModel.validate File "pydantic\main.py", line 340, in pydantic.main.BaseModel.init File "pydantic\main.py", line 1076, in pydantic.main.validate_model File "pydantic\fields.py", line 860, in pydantic.fields.ModelField.validate pydantic.errors.ConfigError: field "meta" not yet prepared so type is still a ForwardRef, you might need to call DocumentSerialized.update_forward_refs(). 请问应该如何解决?再次感谢您的回复

yunshifengyu commented 1 year ago

这个怎么复现呢?是按照readme操作引起的错误吗?

您好,PretrainedConfig进行了较大的升级,目前可以先安装低版本的paddlenlp

我在使用索引服务阶段遇到了错误。首先在将文档写入ANN检索库时, 运行python utils/offline_ann.py --index_name dureader_robust_query_encoder --doc_dir data/dureader_dev 得到了 INFO - pipelines.utils.logger - Logged parameters: {'processor': 'TextSimilarityProcessor', 'tokenizer': 'NoneType', 'max_seq_len': '0', 'dev_split': '0.1'} INFO - pipelines.document_stores.elasticsearch - Updating embeddings for all 1398 docs ... Updating embeddings: 10000 Docs [02:06, 78.77 Docs/s] 结果,但是当进入前端进行检索时好像检索库中没有内容。 RestAPI端报错: query query='衡量酒水的价格的因素有哪些?' params={'filters': {}, 'Retriever': {'top_k': 30}, 'Ranker': {'top_k': 3}} debug=False 12/28/2022 10:52:51 AM {'info': 'No documents with embeddings.'} 12/28/2022 10:52:51 AM Likely some of your stored documents don't have embeddings. try to run the document store's update_embeddings() method. INFO: 127.0.0.1:65529 - "POST /query HTTP/1.1" 500 Internal Server Error ERROR: Exception in ASGI application Traceback (most recent call last): File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\uvicorn\protocols\http\h11_impl.py", line 408, in run_asgi self.scope, self.receive, self.send File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\uvicorn\middleware\proxy_headers.py", line 78, in call return await self.app(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\fastapi\applications.py", line 270, in call await super().call(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\applications.py", line 124, in call await self.middleware_stack(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\middleware\errors.py", line 184, in call raise exc File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\middleware\errors.py", line 162, in call await self.app(scope, receive, _send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\middleware\cors.py", line 84, in call await self.app(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\middleware\exceptions.py", line 79, in call raise exc File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\middleware\exceptions.py", line 68, in call await self.app(scope, receive, sender) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 21, in call raise e File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 18, in call await self.app(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\routing.py", line 706, in call await route.handle(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\routing.py", line 276, in handle await self.app(scope, receive, send) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\routing.py", line 66, in app response = await func(request) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\fastapi\routing.py", line 262, in app is_coroutine=is_coroutine, File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\fastapi\routing.py", line 132, in serialize_response field.validate, response_content, {}, loc=("response",) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\starlette\concurrency.py", line 41, in run_in_threadpool return await anyio.to_thread.run_sync(func, args) File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\anyio\to_thread.py", line 32, in run_sync func, args, cancellable=cancellable, limiter=limiter File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\anyio_backends_asyncio.py", line 937, in run_sync_in_worker_thread return await future File "C:\Users\anaconda3\envs\paddle_test4\lib\site-packages\anyio_backends_asyncio.py", line 867, in run result = context.run(func, *args) File "pydantic\fields.py", line 884, in pydantic.fields.ModelField.validate File "pydantic\fields.py", line 1101, in pydantic.fields.ModelField._validate_singleton File "pydantic\fields.py", line 1148, in pydantic.fields.ModelField._apply_validators File "pydantic\class_validators.py", line 318, in pydantic.class_validators._generic_validator_basic.lambda13 File "pydantic\main.py", line 711, in pydantic.main.BaseModel.validate File "pydantic\main.py", line 340, in pydantic.main.BaseModel.init File "pydantic\main.py", line 1076, in pydantic.main.validate_model File "pydantic\fields.py", line 895, in pydantic.fields.ModelField.validate File "pydantic\fields.py", line 928, in pydantic.fields.ModelField._validate_sequence_like File "pydantic\fields.py", line 1094, in pydantic.fields.ModelField._validate_singleton File "pydantic\fields.py", line 884, in pydantic.fields.ModelField.validate File "pydantic\fields.py", line 1101, in pydantic.fields.ModelField._validate_singleton File "pydantic\fields.py", line 1148, in pydantic.fields.ModelField._apply_validators File "pydantic\class_validators.py", line 318, in pydantic.class_validators._generic_validator_basic.lambda13 File "pydantic\main.py", line 711, in pydantic.main.BaseModel.validate File "pydantic\main.py", line 340, in pydantic.main.BaseModel.init File "pydantic\main.py", line 1076, in pydantic.main.validate_model File "pydantic\fields.py", line 860, in pydantic.fields.ModelField.validate pydantic.errors.ConfigError: field "meta" not yet prepared so type is still a ForwardRef, you might need to call DocumentSerialized.update_forward_refs(). 请问应该如何解决?再次感谢您的回复

是的,按照windows下的操作我执行完最后一步打开前端报了此错误。 我同样使用M1 MacOS进行搭建,执行到 curl -X POST -k http://localhost:8891/query -H 'Content-Type: application/json' -d '{"query": "衡量酒水的价格的因素有哪些?","params": {"Retriever": {"top_k": 5}, "Ranker":{"top_k": 5}}}' 报了相同的错误。

w5688414 commented 1 year ago

@yunshifengyu 代码格式化原因,导致顺序进行了调整,您可以按照下面的import顺序:

from typing import Dict, List, Optional, Union, Any
from pydantic import BaseModel, Field, Extra
from pipelines.schema import Answer, Document, Label, Span
from pydantic import BaseConfig
from pydantic.dataclasses import dataclass as pydantic_dataclass

https://github.com/PaddlePaddle/PaddleNLP/blob/45c2269a43ae7f128e4ef01e8f3fb98243f981ac/pipelines/rest_api/schema.py#L16

yunshifengyu commented 1 year ago

@yunshifengyu 代码格式化原因,导致顺序进行了调整,您可以按照下面的import顺序:

from typing import Dict, List, Optional, Union, Any
from pydantic import BaseModel, Field, Extra
from pipelines.schema import Answer, Document, Label, Span
from pydantic import BaseConfig
from pydantic.dataclasses import dataclass as pydantic_dataclass

https://github.com/PaddlePaddle/PaddleNLP/blob/45c2269a43ae7f128e4ef01e8f3fb98243f981ac/pipelines/rest_api/schema.py#L16

好的,修改后可以运行。但是似乎效果变差了,返回的结果不正常。 image 看起来Relevance值都比较低。 如果单独运行 curl -X POST -k http://localhost:8891/query -H 'Content-Type: application/json' -d '{"query": "衡量酒水的价格的因素有哪些?","params": {"Retriever": {"top_k": 5}, "Ranker":{"top_k": 5}}}' 后端首先会返回空,随后才会返回一个结果,不知道是不是有关系。

INFO: 127.0.0.1:61294 - "POST /query HTTP/1.1" 200 OK query query='衡量酒水的价格的因素有哪些?' params={'Retriever': {'top_k': 5}, 'Ranker': {'top_k': 5}} debug=False 12/30/2022 05:11:21 PM {'info': 'No documents with embeddings.'} 12/30/2022 05:11:21 PM Likely some of your stored documents don't have embeddings. try to run the document store's update_embeddings() method. 12/30/2022 05:11:23 PM {"request": "query='\u8861\u91cf\u9152\u6c34\u7684\u4ef7\u683c\u7684\u56e0\u7d20\u6709\u54ea\u4e9b?' params={'Retriever': {'top_k': 5}, 'Ranker': {'top_k': 5}, 'Query': {'debug': False}} debug=False", "response": {"documents": ["<Document: id=8f0308a3e23070cb1cbc5271a532204, content='\u65e0\u952........

laosuan commented 1 year ago

顺便问个问题,怎么分字段写入搜索引擎呢

github-actions[bot] commented 1 year ago

This issue is stale because it has been open for 60 days with no activity. 当前issue 60天内无活动,被标记为stale。

github-actions[bot] commented 1 year ago

This issue was closed because it has been inactive for 14 days since being marked as stale. 当前issue 被标记为stale已有14天,即将关闭。