Giter VIP home page Giter VIP logo

claude2-pyapi's Issues

requests.exceptions.ProxyError

requests.exceptions.ProxyError: HTTPSConnectionPool(host='claude.ai', port=443): Max retries exceeded with url: /api/organizations (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x00000279EFE8C1C8>: Failed to establish a new connection: [WinError 10061]
由于目标计算机积极拒绝,无法连接。')))

Failed to perform, ErrCode: 23, Reason: 'Failure writing output to destination'. This may be a libcurl error, See https://curl.se/libcurl/c/libcurl-errors.html first for more details.

    def send_message(self, prompt, conversation_id, attachment=None):
        # ......
        buffer = BytesIO()
        c = Curl()
        headers_list = [f"{k}: {v}".encode() for k, v in headers.items()]

        def stream_callback(data):
            json_str = data.decode('utf-8')
            decoded_data = re.sub('\n+', '\n', json_str).strip()
            data_strings = decoded_data.split('\n')
            for data_string in data_strings:
                json_str = data_string[6:].strip()
                _data = json.loads(json_str)
                if 'completion' in _data:
                    buffer.write(str(_data['completion']).encode('utf-8'))
                    print(_data['completion'], end="")

        c.setopt(CurlOpt.URL, b'https://claude.ai/api/append_message')
        c.setopt(CurlOpt.WRITEFUNCTION, stream_callback)
        c.setopt(CurlOpt.HTTPHEADER, headers_list)
        c.setopt(CurlOpt.POSTFIELDS, payload)
        c.impersonate("chrome110")
        c.perform()
        c.close()
        body = buffer.getvalue()
        print(body.decode())
        return body

报错如下

    response = claude.send_message(user_input, conversation_id)
  File "E:\0nlp\split\Claude-API-main\claude-api\claude_api.py", line 181, in send_message
    c.perform()
  File "E:\0nlp\split\Claude-API-main\venv\lib\site-packages\curl_cffi\curl.py", line 251, in perform
    self._check_error(ret, action="perform")
  File "E:\0nlp\split\Claude-API-main\venv\lib\site-packages\curl_cffi\curl.py", line 106, in _check_error
    raise error
curl_cffi.curl.CurlError: Failed to perform, ErrCode: 23, Reason: 'Failure writing output to destination'. This may be a libcurl error, See https://curl.se/libcurl/c/libcurl-errors.html first for more details.

JSONDecodeError

Expecting value: line 1 column 1 (char 0)
StopIteration: 0

During handling of the above exception, another exception occurred:

File "C:\Users\Administrator\Desktop\yuni_dev\yuniverse\Claude2-PyAPI-master\claude_api.py", line 152, in send_message
data = json.loads(json_str)
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\yuni_dev\yuniverse\Claude2-PyAPI-master\claude_api.py", line 345, in
response = claude_api.send_message(prompt, conversation_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

raise RequestsError(str(e), e.code, rsp) from e curl_cffi.requests.errors.RequestsError: Failed to perform, ErrCode: 7, Reason: 'Failed to connect to 127.0.0.1 port 10808 after 2026 ms: Connection refused'. This may be a libcurl error, See https://curl.se/libcurl/c/libcurl-errors.html first for more details.

raise RequestsError(str(e), e.code, rsp) from e
curl_cffi.requests.errors.RequestsError: Failed to perform, ErrCode: 7, Reason: 'Failed to connect to 127.0.0.1 port 10808 after 2026 ms: Connection refused'. This may be a libcurl error, See https://curl.se/libcurl/c/libcurl-errors.html first for more details.

send_message失败

作者大大你好!我在测试机上部署claude_flask项目,目前可以正常使用history接口获取历史提问数据。但在请求chat/时请求被挂起。
直接本地调用send_message方法会报 curl的char *不能为str。
由于UUID已经是能正常获取,使用的又是同个header,这让我找不到切入点。
我尝试在curl模块代码中捕获并跳过这些出错的参数,但这显然是无法正常运行的。
再次尝试修改claude_api下send_message的请求方法为requests.post,此时返回的respones为:
{'error': {'type': 'permission_error', 'message': 'We are unable to serve your request'}}
是否必须严格使用代码中CURL()的请求方式,抑或是我缺少了某些参数?

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

Traceback (most recent call last):
File "C:\Python311\Lib\runpy.py", line 198, in _run_module_as_main
return _run_code(code, main_globals, None,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python311\Lib\runpy.py", line 88, in run_code
exec(code, run_globals)
File "c:\Users\Administrator.vscode\extensions\ms-python.python-2023.4.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy_main
.py", line 39, in
cli.main()
File "c:\Users\Administrator.vscode\extensions\ms-python.python-2023.4.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 430, in main
run()
File "c:\Users\Administrator.vscode\extensions\ms-python.python-2023.4.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 284, in run_file
runpy.run_path(target, run_name="main")
File "c:\Users\Administrator.vscode\extensions\ms-python.python-2023.4.1\pythonFiles\lib\python\debugpy_vendored\pydevd_pydevd_bundle\pydevd_runpy.py", line 320, in run_path
code, fname = _get_code_from_file(run_name, path_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Administrator.vscode\extensions\ms-python.python-2023.4.1\pythonFiles\lib\python\debugpy_vendored\pydevd_pydevd_bundle\pydevd_runpy.py", line 294, in _get_code_from_file
code = compile(f.read(), fname, 'exec')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\yuni_dev\test\claudeapi1.py", line 4
claude_cookie = "C:\Users\Administrator\Desktop\yuni_dev\test\claude_cookies.json"

         ^

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in
position 2-3: truncated \UXXXXXXXX escape

Endpoint disabled

Sending any message will result in:
{"error":{"type":"permission_error","message":"Endpoint disabled"}}

Does anyone have this problem?

ModuleNotFoundError: No module named 'exceptions'

Traceback (most recent call last):
File "e:\projects\Claude2-PyAPI\bot.py", line 2, in
from claude_api import Client
File "e:\projects\Claude2-PyAPI\claude_api.py", line 9, in
import docx
File "E:\prgramfiles\python3\lib\site-packages\docx.py", line 30, in
from exceptions import PendingDeprecationWarning
ModuleNotFoundError: No module named 'exceptions'是什么问题

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

发现Chat里面background_tasks.add_task(client.send_message, prompt, conversation_id) 这里会报错,就是说send_message函数出现了报错

ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "D:\miniconda3\envs\py310\lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 435, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
  File "D:\miniconda3\envs\py310\lib\site-packages\uvicorn\middleware\proxy_headers.py", line 78, in __call__
    return await self.app(scope, receive, send)
  File "D:\miniconda3\envs\py310\lib\site-packages\fastapi\applications.py", line 290, in __call__
    await super().__call__(scope, receive, send)
  File "D:\miniconda3\envs\py310\lib\site-packages\starlette\applications.py", line 122, in __call__
    await self.middleware_stack(scope, receive, send)
  File "D:\miniconda3\envs\py310\lib\site-packages\starlette\middleware\errors.py", line 184, in __call__
    raise exc
  File "D:\miniconda3\envs\py310\lib\site-packages\starlette\middleware\errors.py", line 162, in __call__
    await self.app(scope, receive, _send)
  File "D:\miniconda3\envs\py310\lib\site-packages\starlette\middleware\cors.py", line 83, in __call__
    await self.app(scope, receive, send)
  File "D:\miniconda3\envs\py310\lib\site-packages\starlette\middleware\exceptions.py", line 79, in __call__
    raise exc
  File "D:\miniconda3\envs\py310\lib\site-packages\starlette\middleware\exceptions.py", line 68, in __call__
    await self.app(scope, receive, sender)
  File "D:\miniconda3\envs\py310\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 20, in __call__
    raise e
  File "D:\miniconda3\envs\py310\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 17, in __call__
    await self.app(scope, receive, send)
  File "D:\miniconda3\envs\py310\lib\site-packages\starlette\routing.py", line 718, in __call__
    await route.handle(scope, receive, send)
  File "D:\miniconda3\envs\py310\lib\site-packages\starlette\routing.py", line 276, in handle
    await self.app(scope, receive, send)
  File "D:\miniconda3\envs\py310\lib\site-packages\starlette\routing.py", line 66, in app
    response = await func(request)
  File "D:\miniconda3\envs\py310\lib\site-packages\fastapi\routing.py", line 241, in app
    raw_response = await run_endpoint_function(
  File "D:\miniconda3\envs\py310\lib\site-packages\fastapi\routing.py", line 167, in run_endpoint_function
    return await dependant.call(**values)
  File "c:\Users\TD\Desktop\python\LC server\APP\fastapi\main.py", line 150, in create_chat
    return client.send_message(prompt, conversation_id)
  File "c:\Users\TD\Desktop\python\LC server\APP\fastapi\claude_api.py", line 179, in send_message
    data = json.loads(json_str)
  File "D:\miniconda3\envs\py310\lib\json\__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "D:\miniconda3\envs\py310\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "D:\miniconda3\envs\py310\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

请问有人遇到过吗

uuid 获取失败

File "e:\人工智能\claude\Claude2-PyAPI-master\Claude2-PyAPI-master\claude_api.py", line 34, in get_organization_id
uuid = res[0]['uuid']
KeyError: 0

docker 部署问题

image
我已经打包好了镜像,但是我启动这个镜像的时候启动失败

企业微信应用发送消息报错

ImApp.py运行后发送消息报错如下

[2023-09-04 04:16:36,824] ERROR in app: Exception on /wechat [POST]
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 203, in _new_conn
    sock = connection.create_connection(
  File "/usr/local/lib/python3.10/site-packages/urllib3/util/connection.py", line 85, in create_connection
    raise err
  File "/usr/local/lib/python3.10/site-packages/urllib3/util/connection.py", line 73, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

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

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 776, in urlopen
    self._prepare_proxy(conn)
  File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 1041, in _prepare_proxy
    conn.connect()
  File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 611, in connect
    self.sock = sock = self._new_conn()
  File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 218, in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7f105b7f8280>: Failed to establish a new connection: [Errno 111] Connection refused

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

urllib3.exceptions.ProxyError: ('Unable to connect to proxy', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f105b7f8280>: Failed to establish a new connection: [Errno 111] Connection refused'))

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

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/requests/adapters.py", line 486, in send
    resp = conn.urlopen(
  File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 844, in urlopen
    retries = retries.increment(
  File "/usr/local/lib/python3.10/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='qyapi.weixin.qq.com', port=443): Max retries exceeded with url: /cgi-bin/message/send?access_token=1000005 (Caused by ProxyError('Unable to connect to proxy', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f105b7f8280>: Failed to establish a new connection: [Errno 111] Connection refused')))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 2190, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1486, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/home/claude/channel/wechatcom/wechatenterprise_channel.py", line 25, in handler_msg
    return WechatEnterpriseChannel().handle()
  File "/home/claude/channel/wechatcom/wechatenterprise_channel.py", line 89, in handle
    self.client.message.send_text(self.AppId,msg.source,reply)
  File "/usr/local/lib/python3.10/site-packages/wechatpy/enterprise/client/api/message.py", line 62, in send_text
    return self.send(
  File "/usr/local/lib/python3.10/site-packages/wechatpy/enterprise/client/api/message.py", line 58, in send
    return self._post('message/send', data=data)
  File "/usr/local/lib/python3.10/site-packages/wechatpy/client/api/base.py", line 19, in _post
    return self._client.post(url, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/wechatpy/client/base.py", line 182, in post
    return self._request(
  File "/usr/local/lib/python3.10/site-packages/wechatpy/client/base.py", line 85, in _request
    res = self._http.request(
  File "/usr/local/lib/python3.10/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.10/site-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/requests/adapters.py", line 513, in send
    raise ProxyError(e, request=request)
requests.exceptions.ProxyError: HTTPSConnectionPool(host='qyapi.weixin.qq.com', port=443): Max retries exceeded with url: /cgi-bin/message/send?access_token=1000005 (Caused by ProxyError('Unable to connect to proxy', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f105b7f8280>: Failed to establish a new connection: [Errno 111] Connection refused')))
183.47.98.227 - - [04/Sep/2023 04:16:36] "POST /wechat?msg_signature=0c10c5427f385f5346b577e89f3c350fc2706cbd&timestamp=1693800996&nonce=1693700453 HTTP/1.1" 500 -
No ID found. Creating new ID
[ERROR][2023-09-04 04:16:36][wechatenterprise_channel.py:57] - You are using http proxy WRONG, the prefix should be 'http://' not 'https://',see: https://github.com/yifeikong/curl_cffi/issues/6
Traceback (most recent call last):
  File "/home/claude/channel/wechatcom/wechatenterprise_channel.py", line 53, in _do_send
    reply_text = super().build_reply_content(query, context)
  File "/home/claude/channel/channel.py", line 31, in build_reply_content
    return Bridge().fetch_reply_content(query, context)
  File "/home/claude/bridge/bridge.py", line 11, in fetch_reply_content
    return bot_factory.create_bot("claudeAI").reply(query, context)
  File "/home/claude/bot/claude/claude_ai_bot.py", line 19, in reply
    result= self.create_chat(query,Conversation_id)
  File "/home/claude/bot/claude/claude_ai_bot.py", line 30, in create_chat
    client = Client(self.cookie,self.isproxy)
  File "/home/claude/claude_api.py", line 18, in __init__
    self.organization_id =self.get_organization_id()
  File "/home/claude/claude_api.py", line 51, in get_organization_id
    response = self.send_request("GET",url,headers=headers)
  File "/home/claude/claude_api.py", line 325, in send_request
    return requests.request(method, url, headers=headers, data=data, files=files, params=params,impersonate="chrome110",proxies=self.proxies,timeout=500)
  File "/usr/local/lib/python3.10/site-packages/curl_cffi/requests/__init__.py", line 46, in request
    return s.request(
  File "/usr/local/lib/python3.10/site-packages/curl_cffi/requests/session.py", line 407, in request
    req, buffer, header_buffer = self._set_curl_options(
  File "/usr/local/lib/python3.10/site-packages/curl_cffi/requests/session.py", line 267, in _set_curl_options
    raise RequestsError(
curl_cffi.requests.errors.RequestsError: You are using http proxy WRONG, the prefix should be 'http://' not 'https://',see: https://github.com/yifeikong/curl_cffi/issues/6

curl_cffi.curl: TypeError: initializer for ctype 'char *' must be a bytes or list or tuple, not str

from Claude2_PyAPI.claude_api import Client
COOKIE=None
with root.joinpath("claude_cookie").open('r',encoding='utf8') as ck:
    COOKIE=ck.read().strip()
chat_uuid=[
    'ec4adbca-c7a0-4935-8a29-494c803a5793',
    'c92660e3-7f0f-4d3c-a9eb-6e7bd63ee4f7',
    '7ca6b8f1-aeb9-4ea3-a278-4806f6a2fb35',
    '08aa6cfd-8bb4-47e0-932a-9256512d2517',
    '26d967a0-ff0d-4b63-bd62-a38aa24748eb'
]
claude_api=Client(COOKIE)

prompt="Hello Claude! How are you?"

conversation_id = "<conversation_id>"
conversation_id = chat_uuid[0]
response = claude_api.send_message(prompt, conversation_id)
print(response)

简单想尝试下但报错:
Exception has occurred: TypeError (note: full exception trace is shown but execution is paused at: _run_module_as_main)
initializer for ctype 'char *' must be a bytes or list or tuple, not str
File "C:\Users\admin\AppData\Roaming\Python\Python310\site-packages\curl_cffi\curl.py", line 174, in setopt
self._headers = lib.curl_slist_append(self._headers, header)
File "D:\models\datasets\claude2(fetch)\Claude2_PyAPI\claude_api.py", line 179, in send_message
c.setopt(CurlOpt.HTTPHEADER, str(headers))
File "D:\models\datasets\claude2(fetch)\claude2.py", line 26, in
response = claude_api.send_message(prompt, conversation_id)
File "C:\Program Files\Python310\Lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "C:\Program Files\Python310\Lib\runpy.py", line 196, in _run_module_as_main (Current frame)
return _run_code(code, main_globals, None,
TypeError: initializer for ctype 'char *' must be a bytes or list or tuple, not str

HTTP/2 stream 1 was not closed cleanly before end of the underlying stream

带附件请求总是会遇到这个问题,不带附件偶尔遇到,请问有没有解决方案
Traceback (most recent call last):

File ~\anaconda3\envs\compe\lib\site-packages\curl_cffi\requests\session.py:436 in request
c.perform()

File ~\anaconda3\envs\compe\lib\site-packages\curl_cffi\curl.py:191 in perform
self._check_error(ret, action="perform")

File ~\anaconda3\envs\compe\lib\site-packages\curl_cffi\curl.py:84 in _check_error
raise error

CurlError: Failed to perform, ErrCode: 92, Reason: 'HTTP/2 stream 1 was not closed cleanly before end of the underlying stream'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File ~\anaconda3\envs\compe\lib\site-packages\spyder_kernels\py3compat.py:356 in compat_exec
exec(code, globals, locals)

File e:\repositories\claude2\test.py:49
response = claude_api.send_message(prompt, conversation_id)

File E:\Repositories\claude2\Claude2-PyAPI\claude_api.py:146 in send_message
response = self.send_request("POST",url,headers=headers, data=payload, stream=True)

File E:\Repositories\claude2\Claude2-PyAPI\claude_api.py:344 in send_request
return requests.request(method, url, headers=headers, data=data, files=files, params=params,impersonate="chrome110",timeout=500)

File ~\anaconda3\envs\compe\lib\site-packages\curl_cffi\requests_init_.py:46 in request
return s.request(

File ~\anaconda3\envs\compe\lib\site-packages\curl_cffi\requests\session.py:438 in request
raise RequestsError(e)

RequestsError: Failed to perform, ErrCode: 92, Reason: 'HTTP/2 stream 1 was not closed cleanly before end of the underlying stream'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.