wxywb / history_rag

789 stars 102 forks source link

raise MilvusException( pymilvus.exceptions.MilvusException: <MilvusException: (code=2, message=Fail connecting to server on localhost:19530, illegal connection params or server unavailable)> #73

Closed G-walk closed 1 month ago

G-walk commented 1 month ago

作者您好,我在运行cli.py,并进行build后发生如下错误,不知道该怎么解决:

(rag) milvus模式已选择
  1.使用`build data/history_24/baihuasanguozhi.txt`来进行知识库构建。
  2.已有索引可以使用`ask`进行提问, `-d`参数以debug模式进入。
  3.删除已有索引可以使用`remove baihuasanguozhi.txt`。
(rag) build data/history_24/baihuabeiqishi.txt
Failed to create new connection using: 39375c90061c41bbbf6f84445f59016c
Traceback (most recent call last):
  File "C:\MainStorage\Documents\history_rag-master\cli.py", line 120, in <module>
    cli.run()
  File "C:\MainStorage\Documents\history_rag-master\cli.py", line 53, in run
    self.parse_input(command_text)
  File "C:\MainStorage\Documents\history_rag-master\cli.py", line 65, in parse_input
    self.build_index(path=commands[1], overwrite=False)
  File "C:\MainStorage\Documents\history_rag-master\cli.py", line 92, in build_index
    self._executor.build_index(path, overwrite)
  File "C:\MainStorage\Documents\history_rag-master\executor.py", line 161, in build_index
    vector_store = MilvusVectorStore(
                   ^^^^^^^^^^^^^^^^^^
  File "C:\Users\jzh10\AppData\Local\Programs\Python\Python311\Lib\site-packages\llama_index\vector_stores\milvus\base.py", line 238, in __init__
    self._milvusclient = MilvusClient(
                         ^^^^^^^^^^^^^
  File "C:\Users\jzh10\AppData\Local\Programs\Python\Python311\Lib\site-packages\pymilvus\milvus_client\milvus_client.py", line 53, in __init__
    self._using = self._create_connection(
                  ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jzh10\AppData\Local\Programs\Python\Python311\Lib\site-packages\pymilvus\milvus_client\milvus_client.py", line 639, in _create_connection
    raise ex from ex
  File "C:\Users\jzh10\AppData\Local\Programs\Python\Python311\Lib\site-packages\pymilvus\milvus_client\milvus_client.py", line 636, in _create_connection
    connections.connect(using, user, password, db_name, token, uri=uri, **kwargs)
  File "C:\Users\jzh10\AppData\Local\Programs\Python\Python311\Lib\site-packages\pymilvus\orm\connections.py", line 422, in connect
    connect_milvus(**kwargs, user=user, password=password, token=token, db_name=db_name)
  File "C:\Users\jzh10\AppData\Local\Programs\Python\Python311\Lib\site-packages\pymilvus\orm\connections.py", line 373, in connect_milvus
    gh._wait_for_channel_ready(timeout=timeout)
  File "C:\Users\jzh10\AppData\Local\Programs\Python\Python311\Lib\site-packages\pymilvus\client\grpc_handler.py", line 147, in _wait_for_channel_ready
    raise MilvusException(
pymilvus.exceptions.MilvusException: <MilvusException: (code=2, message=Fail connecting to server on localhost:19530, illegal connection params or server unavailable)>

我运行docker ps后发现Milvus服务应该是正常运行的:

CONTAINER ID   IMAGE                                      COMMAND                   CREATED       STATUS
    PORTS                                              NAMES
22f1333ea424   milvusdb/milvus:v2.3.3                     "/tini -- milvus run…"   2 hours ago   Up 21 minutes (healthy)   0.0.0.0:9091->9091/tcp, 0.0.0.0:19530->19530/tcp   milvus-standalone
fd6c4b496655   quay.io/coreos/etcd:v3.5.5                 "etcd -advertise-cli…"   2 hours ago   Up 21 minutes (healthy)   2379-2380/tcp                                      milvus-etcd
d1cf9deb640c   minio/minio:RELEASE.2023-03-20T20-16-18Z   "/usr/bin/docker-ent…"   2 hours ago   Up 21 minutes (healthy)   0.0.0.0:9000-9001->9000-9001/tcp                   milvus-minio
wxywb commented 1 month ago

https://milvus.io/docs/v2.3.x/example_code.md 你能试一下这个吗,看一下直接连接milvus有没有问题?

G-walk commented 1 month ago

试了链接里的代码,直连似乎没什么问题:

python .\hello_milvus.py

=== start connecting to Milvus     ===

Does collection hello_milvus exist in Milvus: False

=== Create collection `hello_milvus` ===

=== Start inserting entities       ===

Number of entities in Milvus: 3001

=== Start Creating index IVF_FLAT  ===

=== Start loading                  ===

=== Start searching based on vector similarity ===

hit: id: 2998, distance: 0.0, entity: {'random': 0.9728033590489911}, random field: 0.9728033590489911
hit: id: 999, distance: 0.09934990108013153, entity: {'random': 0.9519034206569449}, random field: 0.9519034206569449
hit: id: 1310, distance: 0.10135538130998611, entity: {'random': 0.26669865443188623}, random field: 0.26669865443188623
hit: id: 2999, distance: 0.0, entity: {'random': 0.02316334456872482}, random field: 0.02316334456872482
hit: id: 2502, distance: 0.13083189725875854, entity: {'random': 0.9289998713260136}, random field: 0.9289998713260136
hit: id: 2669, distance: 0.1590736359357834, entity: {'random': 0.6080847854541138}, random field: 0.6080847854541138
search latency = 0.2353s

=== Start querying with `random > 0.5` ===

query result:
-{'random': 0.6378742006852851, 'embeddings': [np.float32(0.8367804), np.float32(0.20963514), np.float32(0.6766955), np.float32(0.39746654), np.float32(0.8180806), np.float32(0.1201905), np.float32(0.9467144), np.float32(0.6947491)], 'pk': '0'}
search latency = 0.4097s
query pagination(limit=4):
        [{'pk': '0', 'random': 0.6378742006852851}, {'pk': '100', 'random': 0.5763523024650556}, {'pk': '1000', 'random': 0.9425935891639464}, {'pk': '1001', 'random': 0.7893211256191387}]
query pagination(offset=1, limit=3):
        [{'random': 0.5763523024650556, 'pk': '100'}, {'random': 0.9425935891639464, 'pk': '1000'}, {'random': 0.7893211256191387, 'pk': '1001'}]

=== Start hybrid searching with `random > 0.5` ===

hit: id: 2998, distance: 0.0, entity: {'random': 0.9728033590489911}, random field: 0.9728033590489911
hit: id: 999, distance: 0.09934990108013153, entity: {'random': 0.9519034206569449}, random field: 0.9519034206569449
hit: id: 1553, distance: 0.12913644313812256, entity: {'random': 0.7723335927084438}, random field: 0.7723335927084438
hit: id: 2502, distance: 0.13083189725875854, entity: {'random': 0.9289998713260136}, random field: 0.9289998713260136
hit: id: 2669, distance: 0.1590736359357834, entity: {'random': 0.6080847854541138}, random field: 0.6080847854541138
hit: id: 2628, distance: 0.1914074718952179, entity: {'random': 0.940077754658375}, random field: 0.940077754658375
search latency = 0.4089s

=== Start deleting with expr `pk in ["0" , "1"]` ===

query before delete by expr=`pk in ["0" , "1"]` -> result:
-{'random': 0.6378742006852851, 'embeddings': [np.float32(0.8367804), np.float32(0.20963514), np.float32(0.6766955), np.float32(0.39746654), np.float32(0.8180806), np.float32(0.1201905), np.float32(0.9467144), np.float32(0.6947491)], 'pk': '0'}
-{'random': 0.43925103574669633, 'embeddings': [np.float32(0.27875876), np.float32(0.95355743), np.float32(0.976228), np.float32(0.54545516), np.float32(0.16776836), np.float32(0.82360446), np.float32(0.65080017), np.float32(0.21096307)], 'pk': '1'}

query after delete by expr=`pk in ["0" , "1"]` -> result: []

=== Drop collection `hello_milvus` ===
G-walk commented 1 month ago

哦我找到问题在哪了,我使用的是windows powershell运行的cli.py,因为途中有步骤需要连hugging face所以我给powershell设置了代理$env:HTTP_PROXY="xxxx",设置完代理后能连接上hugging face但是就连不上本地的milvus了。我之后试试用别的方式设置代理,看看能不能绕过这个问题。

感谢作者,不是你提供的直连方案我也找不出这个问题

wxywb commented 1 month ago

试试 export HF_ENDPOINT=https://hf-mirror.com

G-walk commented 1 month ago

这个可以,或者直接让代理绕过本地地址也行:

    # os.environ['http_proxy'] = "<proxy>"
    # os.environ['https_proxy'] = "<proxy>"
    # os.environ['no_proxy'] = 'localhost,127.0.0.1'

另外访问太多hugging face好像会被ban ip……我直接把bge-base-zh-v1.5bge-reranker-large下载到本地用了。 然后如果模型不用chatgpt换成国内的模型(比如qwen)的话就可以彻底告别代理了。 程序运行得很顺利,comment closed