gpt_academic icon indicating copy to clipboard operation
gpt_academic copied to clipboard

[Feature]: 能否完全脱机运行?

Open rattlebot opened this issue 1 year ago • 1 comments

Class | 类型

None

Feature Request | 功能请求

需要在无法连接外网的局域网上运行。已经通过conda-pack复制了环境,但运行python main.py时返回如下:

 [PROXY] 网络代理状态:未配置。无代理状态下很可能无法访问OpenAI家族的模型。建议:检查USE_PROXY选项是否修改。 
所有问询记录将自动保存在本地目录./gpt_log/chat_secrets.log, 请注意自我隐私保护哦!
代理配置 无, 代理所在地查询超时,代理可能无效
 [API_KEY] 本项目现已支持OpenAI和Azure的api-key。也支持同时填写多个api-key,如API_KEY="openai-key1,openai-key2,azure-key3" 
 [API_KEY] 您既可以在config.py中修改api-key(s),也可以在问题输入区输入临时的api-key(s),然后回车键提交后即可生效。 
 [API_KEY] 您的 API_KEY 不满足任何一种已知的密钥格式,请在config文件中修改API密钥之后再运行。 
如果浏览器没有自动打开,请复制并转到以下URL:
        「暗色主题已启用(支持动态切换主题)」: http://localhost:6006
Running on local URL:  http://0.0.0.0:6006
正在执行一些模块的预热 ...
正在加载tokenizer,如果是第一次运行,可能需要一点时间下载参数
自动更新程序:已禁用。建议排查:代理网络配置。
Exception in thread warm-up:
Traceback (most recent call last):
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/urllib3/connection.py", line 203, in _new_conn
    sock = connection.create_connection(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/urllib3/util/connection.py", line 60, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/socket.py", line 962, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
socket.gaierror: [Errno -3] Temporary failure in name resolution

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/urllib3/connectionpool.py", line 790, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/urllib3/connectionpool.py", line 491, in _make_request
    raise new_e
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/urllib3/connectionpool.py", line 467, in _make_request
    self._validate_conn(conn)
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/urllib3/connectionpool.py", line 1096, in _validate_conn
    conn.connect()
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/urllib3/connection.py", line 611, in connect
    self.sock = sock = self._new_conn()
                       ^^^^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/urllib3/connection.py", line 210, in _new_conn
    raise NameResolutionError(self.host, self, e) from e
urllib3.exceptions.NameResolutionError: <urllib3.connection.HTTPSConnection object at 0x7fa547fc7e50>: Failed to resolve 'openaipublic.blob.core.windows.net' ([Errno -3] Temporary failure in name resolution)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/requests/adapters.py", line 486, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/urllib3/connectionpool.py", line 844, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/urllib3/util/retry.py", line 515, in increment
    raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7fa547fc7e50>: Failed to resolve 'openaipublic.blob.core.windows.net' ([Errno -3] Temporary failure in name resolution)"))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
    self.run()
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/threading.py", line 982, in run
    self._target(*self._args, **self._kwargs)
  File "/lqr/gpt_academic/main.py", line 378, in warm_up_mods
    def warm_up_mods(): time.sleep(6); warm_up_modules()
                                       ^^^^^^^^^^^^^^^^^
  File "/lqr/gpt_academic/check_proxy.py", line 159, in warm_up_modules
    enc.encode("模块预热", disallowed_special=())
  File "/lqr/gpt_academic/request_llms/bridge_all.py", line 46, in encode
    encoder = self.get_encoder(self.model) 
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lqr/gpt_academic/request_llms/bridge_all.py", line 41, in get_encoder
    tmp = tiktoken.encoding_for_model(model)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/tiktoken/model.py", line 97, in encoding_for_model
    return get_encoding(encoding_name_for_model(model_name))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/tiktoken/registry.py", line 73, in get_encoding
    enc = Encoding(**constructor())
                     ^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/tiktoken_ext/openai_public.py", line 64, in cl100k_base
    mergeable_ranks = load_tiktoken_bpe(
                      ^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/tiktoken/load.py", line 123, in load_tiktoken_bpe
    contents = read_file_cached(tiktoken_bpe_file)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/tiktoken/load.py", line 50, in read_file_cached
    contents = read_file(blobpath)
               ^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/tiktoken/load.py", line 24, in read_file
    resp = requests.get(blobpath)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/requests/api.py", line 73, in get
    return request("get", url, params=params, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/anaconda3/envs/gpt_academic/lib/python3.11/site-packages/requests/adapters.py", line 519, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7fa547fc7e50>: Failed to resolve 'openaipublic.blob.core.windows.net' ([Errno -3] Temporary failure in name resolution)"))
^CKeyboard interruption in main thread... closing server.

rattlebot avatar Jan 10 '24 06:01 rattlebot

首次运行需要下载tiktoken的数据,完全脱机的话,建议用docker容器先联网运行一遍,然后再打包

binary-husky avatar Jan 14 '24 08:01 binary-husky