gpt4 book ai didi

python - 连接到 Azure Web App 上托管的 ChromaDB 客户端时出现 ConnectTimeout 错误

转载 作者:行者123 更新时间:2023-12-03 03:21:36 27 4
gpt4 key购买 nike

尝试通过客户端连接到 Azure Web App 上托管的 ChromaDB 实例时,我不断收到连接超时错误

import chromadb

client = chromadb.HttpClient(host="https://chroma-db.azurewebsites.net")

client.list_collections()


Part of the error log includes:

Traceback (most recent call last):
...
TimeoutError: [Errno 60] Operation timed out
...
urllib3.exceptions.ConnectTimeoutError: (<urllib3.connection.HTTPConnection object at 0x...>, 'Connection to chroma-db.azurewebsites.net timed out. (connect timeout=None)')
...
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='chroma-db.azurewebsites.net', port=8000): Max retries exceeded with url: /api/v1/collections (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x...>, 'Connection to my-chroma-db.azurewebsites.net timed out. (connect timeout=None)'))
...
requests.exceptions.ConnectTimeout: HTTPConnectionPool(host='chroma-db.azurewebsites.net', port=8000): Max retries exceeded with url: /api/v1/collections (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x...>, 'Connection to chroma-db.azurewebsites.net timed out. (connect timeout=None)'))

我尝试添加主机名、更改 URL 以包含 https 协议(protocol)、尝试不同的端口号。

我应该在 Azure Web App 配置和/或代码中进行哪些更改才能通过客户端进行连接?

我正在使用 ChromaDB v.3.9.10

最佳答案

我在我的环境中也遇到了与您的代码相同的错误。

出现该错误可能有两个原因:

  1. 如果您不登录 Azure 帐户,您将收到相同的错误。

enter image description here

  • 如果 Azure Web 应用程序 URL 不正确,您也会收到此错误。
    因此,请确保您的登录凭据和网络应用 URL 正确。
  • enter image description here enter image description here

    我尝试使用以下示例代码来使用 Azure Web 应用程序查询 chromaDB。

    代码:

    import chromadb
    from flask import Flask, render_template, jsonify

    app = Flask(__name__)

    chroma_db_url = "https://<web_app_name>.azurewebsites.net/"

    chroma_client = chromadb.Client()

    collection = chroma_client.create_collection(name="my_collection")

    collection.add(
    documents=["This is a document", "This is another document"],
    metadatas=[{"source": "my_source"}, {"source": "my_source"}],
    ids=["id1", "id2"]
    )

    query_text = "This is a query document"

    @app.route('/')
    def index():
    return render_template('query.html')

    @app.route('/query')
    def query_chromadb():
    try:
    results = collection.query(query_texts=[query_text], n_results=2)

    return jsonify(results)

    except Exception as e:
    return jsonify({"error": "An error occurred while processing the query: " + str(e)})

    if __name__ == '__main__':
    app.run()

    templates/query.html:

    <!DOCTYPE html>
    <html>
    <head>
    <title>ChromaDB Query</title>
    </head>
    <body>
    <h1>ChromaDB Query</h1>
    <p>Click the button below to execute the predefined query:</p>
    <form method="GET" action="/query">
    <input type="submit" value="Execute Query">
    </form>
    </body>
    </html>

    requirements.txt:

    chromadb==0.4.12
    Flask==2.0.1
    requests>=2.28

    输出:

    运行成功如下图

    enter image description here

    我使用上述输出 URL 在浏览器中获得了以下输出,然后单击执行查询来获取查询。

    enter image description here

    我得到的查询输出如下:

    enter image description here

    关于python - 连接到 Azure Web App 上托管的 ChromaDB 客户端时出现 ConnectTimeout 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77134962/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com