chatpire / chatgpt-web-share Goto Github PK
View Code? Open in Web Editor NEWChatGPT Plus 共享方案。ChatGPT Plus / OpenAI API sharing solution.
Home Page: https://cws-docs.pages.dev/zh/
License: GNU General Public License v3.0
ChatGPT Plus 共享方案。ChatGPT Plus / OpenAI API sharing solution.
Home Page: https://cws-docs.pages.dev/zh/
License: GNU General Public License v3.0
由于现在GPT4是3小时25次的限制,如果单独配置每个用户对话次数为3小时n次就好了
access_token有expire date
It would be great if this could also support the official API, as it can work out to be much cheaper than the Plus subscription
感谢作者的提示,目前这份配置代码在nginx下正常可用。
location /api/ {
proxy_pass http://127.0.0.1:8000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location / {
root /home/wwwroot/chatgpt-web-share/frontend/dist;
try_files $uri $uri/ /index.html;
}
{"code": 404, "message": "404 Not Found", "result": null} 访问设定的ip 和端口之后出现此错误
麻烦问下后续会支持api调用吗
使用docker部署,nginx转发所有请求到docker中,在nginx中可以看到真实的请求ip,但是在后台日志中是局域网ip,感觉像是caddy的配置问题
Can you please guide me on how to implement this app on a DigitalOcean droplet? I am facing an issue of 401 unauthorized access. Can you help me troubleshoot this?
"httpx.HTTPStatusError: Client error '401 Unauthorized' for url 'https://bypass.duti.tech/api/conversations?offset=0&limit=20'
For more information check: https://httpstatuses.com/401"
???
Version
v0.2.17
What's your deploying method?
Docker +Nginx(宝塔)
未知错误: Field missing. Details: {‘message’: None, ‘conversation_id’: ‘337525c0-549c-41dd-aa78-63893b0b53dc’, ‘error’: ‘Error in message stream’}}
To Reproduce
只要提这个问题就会出现
我要在公司内部做一次技术分享,主题是“多重身份(Multi-Identity) 和 多币种钱包(Multi-Wallet)”。
请帮我写一篇文章,题目就叫《多重身份的前身-多币种钱包》。
文章的长度暂定在 5000 字左右,语气可以轻松一些,对文章的结构没有特别的要求,但需要阐述清楚以下几个问题:
什么是 “多币种钱包”
“多币种钱包”的应用场景
市面上有哪些“多币种钱包”的产品
什么是 “多重身份”
“多重身份”的应用场景
市面上有哪些“多重身份”的产品
怎么由 “多币种钱包” 演进到 “多重身份” 的
注意:内容尽量由浅入深,应用场景部分举一些具体的例子,介绍相关产品时配一些图片。
已经出现2次.
该会话也会丢失.
Expected behavior
正常显示
Your config.yaml or other configurations
print_sql: false
host: "127.0.0.1"
port: 8000
database_url: "sqlite+aiosqlite:////data/database.db"
run_migration: false
jwt_secret: "123." # 用于生成 jwt token,需要自行设置
jwt_lifetime_seconds: 86400
cookie_max_age: 86400 # 登录过期时间
user_secret: "123." # 用于生成用户密码,需要自行设置
sync_conversations_on_startup: true # 是否在启动时同步同步 ChatGPT 对话,建议启用
create_initial_admin_user: false # 是否创建初始管理员用户
create_initial_user: false # 是否创建初始普通用户
initial_admin_username: "admin" # 初始管理员用户名
initial_admin_password: "123" # 初始管理员密码
# initial_user_username: user # 初始普通用户名
# initial_user_password: Shared123. # 初始普通密码
# https://chat.openai.com/api/auth/session
chatgpt_access_token: "XXX" # 需要从 ChatGPT 获取
chatgpt_paid: true # 是否为 ChatGPT Plus 用户
Screenshots or running logs
2023/03/23 14:04:53.618 ERROR: [cws.api.routers.chat] Field missing. Details: {'message': None, 'conversation_id': '91766fb7-1449-4361-b373-0c66a68f3885', 'error': 'Error in message stream'}
Additional context
Version
v0.2.19
What's your deploying method?
Describe the bug
提问中反斜杠会消失不显示,但chatgpt官网中有显示。且回答中识别到了。
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Your config.yaml or other configurations
Provide your configurations. You may hide your secrets or access tokens.
Screenshots or running logs
If applicable, add screenshots or logs to help explain your problem.
Additional context
Add any other context about the problem here.
with util.safe_reraise():
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 147, in exit
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 901, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/create.py", line 641, in connect
return dialect.connect(*cargs, **cparams)
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 580, in connect
return self.loaded_dbapi.connect(*cargs, **cparams)
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 305, in connect
await_only(connection),
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 102, in await_only
return current.driver.switch(awaitable) # type: ignore[no-any-return]
File "/usr/local/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 160, in greenlet_spawn
value = await result
File "/usr/local/lib/python3.10/site-packages/aiosqlite/core.py", line 145, in _connect
self._connection = await future
File "/usr/local/lib/python3.10/site-packages/aiosqlite/core.py", line 110, in run
result = function()
File "/usr/local/lib/python3.10/site-packages/aiosqlite/core.py", line 405, in connector
return sqlite3.connect(loc, **kwargs)
sqlite3.OperationalError: unable to open database file
提示数据库不存在 目录已映射 也没有看到创建的数据库
chatgpt-web-share | {"level":"info","ts":1679063063.939427,"msg":"using provided configuration","config_file":"/app/Caddyfile","config_adapter":"caddyfile"}
chatgpt-web-share | {"level":"info","ts":1679063063.9410443,"logger":"admin","msg":"admin endpoint started","address":"localhost:2019","enforce_origin":false,"origins":["//localhost:2019","//[::1]:2019","//127.0.0.1:2019"]}
chatgpt-web-share | {"level":"warn","ts":1679063063.941443,"logger":"http","msg":"server is listening only on the HTTP port, so no automatic HTTPS will be applied to this server","server_name":"srv0","http_port":80}
chatgpt-web-share | {"level":"info","ts":1679063063.9425936,"logger":"http.log","msg":"server running","name":"srv0","protocols":["h1","h2","h3"]}
chatgpt-web-share | {"level":"info","ts":1679063063.9428377,"msg":"autosaved config (load with --resume flag)","file":"/root/.config/caddy/autosave.json"}
chatgpt-web-share | {"level":"info","ts":1679063063.9429247,"msg":"serving initial configuration"}
chatgpt-web-share | {"level":"info","ts":1679063063.9431133,"logger":"tls","msg":"cleaning storage unit","description":"FileStorage:/root/.local/share/caddy"}
chatgpt-web-share | {"level":"info","ts":1679063063.943222,"logger":"tls","msg":"finished cleaning storage units"}
chatgpt-web-share | {"level":"info","ts":1679063063.943413,"logger":"tls.cache.maintenance","msg":"started background certificate maintenance","cache":"0xc000463340"}
chatgpt-web-share | Successfully started Caddy (pid=13) - Caddy is running in the background
chatgpt-web-share | INFO: Started server process [20]
chatgpt-web-share | INFO: Waiting for application startup.
chatgpt-web-share | database not exists, creating database...
chatgpt-web-share | database created
chatgpt-web-share | INFO [alembic.runtime.migration] Context impl SQLiteImpl.
chatgpt-web-share | INFO [alembic.runtime.migration] Will assume non-transactional DDL.
chatgpt-web-share | ERROR: Traceback (most recent call last):
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/starlette/routing.py", line 677, in lifespan
chatgpt-web-share | async with self.lifespan_context(app) as maybe_state:
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/starlette/routing.py", line 566, in aenter
chatgpt-web-share | await self._router.startup()
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/starlette/routing.py", line 654, in startup
chatgpt-web-share | await handler()
chatgpt-web-share | File "/app/backend/main.py", line 148, in on_startup
chatgpt-web-share | raise e
chatgpt-web-share | File "/app/backend/main.py", line 104, in on_startup
chatgpt-web-share | result = await g.chatgpt_manager.get_conversations()
chatgpt-web-share | File "/app/backend/api/chatgpt.py", line 21, in get_conversations
chatgpt-web-share | conversations = await self.chatbot.get_conversations()
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/revChatGPT/V1.py", line 869, in get_conversations
chatgpt-web-share | self.__check_response(response)
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/revChatGPT/V1.py", line 939, in __check_response
chatgpt-web-share | response.raise_for_status()
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpx/_models.py", line 749, in raise_for_status
chatgpt-web-share | raise HTTPStatusError(message, request=request, response=self)
chatgpt-web-share | httpx.HTTPStatusError: Client error '401 Unauthorized' for url 'https://bypass.duti.tech/api/conversations?offset=0&limit=20'
chatgpt-web-share | For more information check: https://httpstatuses.com/401
chatgpt-web-share |
chatgpt-web-share | ERROR: Application startup failed. Exiting.
chatgpt-web-share | stamped database to head
chatgpt-web-share | database initialized
chatgpt-web-share | User 1 has registered.
chatgpt-web-share | User created: <api.models.User object at 0x7f8d7327b4c0>
chatgpt-web-share | User 2 has registered.
chatgpt-web-share | User created: <api.models.User object at 0x7f8d7312d030>
chatgpt-web-share | Client error '401 Unauthorized' for url 'https://bypass.duti.tech/api/conversations?offset=0&limit=20'
chatgpt-web-share | For more information check: https://httpstatuses.com/401
chatgpt-web-share | INFO: Started server process [21]
chatgpt-web-share | INFO: Waiting for application startup.
chatgpt-web-share | INFO [alembic.runtime.migration] Context impl SQLiteImpl.
chatgpt-web-share | INFO [alembic.runtime.migration] Will assume non-transactional DDL.
chatgpt-web-share | ERROR: Traceback (most recent call last):
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/starlette/routing.py", line 677, in lifespan
chatgpt-web-share | async with self.lifespan_context(app) as maybe_state:
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/starlette/routing.py", line 566, in aenter
chatgpt-web-share | await self._router.startup()
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/starlette/routing.py", line 654, in startup
chatgpt-web-share | await handler()
chatgpt-web-share | File "/app/backend/main.py", line 148, in on_startup
chatgpt-web-share | raise e
chatgpt-web-share | File "/app/backend/main.py", line 104, in on_startup
chatgpt-web-share | result = await g.chatgpt_manager.get_conversations()
chatgpt-web-share | File "/app/backend/api/chatgpt.py", line 21, in get_conversations
chatgpt-web-share | conversations = await self.chatbot.get_conversations()
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/revChatGPT/V1.py", line 869, in get_conversations
chatgpt-web-share | self.__check_response(response)
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/revChatGPT/V1.py", line 939, in __check_response
chatgpt-web-share | response.raise_for_status()
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpx/_models.py", line 749, in raise_for_status
chatgpt-web-share | raise HTTPStatusError(message, request=request, response=self)
chatgpt-web-share | httpx.HTTPStatusError: Client error '401 Unauthorized' for url 'https://bypass.duti.tech/api/conversations?offset=0&limit=20'
chatgpt-web-share | For more information check: https://httpstatuses.com/401
chatgpt-web-share |
chatgpt-web-share | ERROR: Application startup failed. Exiting.
chatgpt-web-share | database initialized
chatgpt-web-share | Create User deezy0045 Error: 用户名已存在
chatgpt-web-share | Create User zhd125 Error: 用户名已存在
chatgpt-web-share | Client error '401 Unauthorized' for url 'https://bypass.duti.tech/api/conversations?offset=0&limit=20'
chatgpt-web-share | For more information check: https://httpstatuses.com/401
chatgpt-web-share exited with code 3
Version
v0.2.19
What's your deploying method?
Describe the bug
安卓端管理员账号登录后点右上角切换对话无效。
To Reproduce
Steps to reproduce the behavior:
Expected behavior
页面跳转
Your config.yaml or other configurations
Provide your configurations. You may hide your secrets or access tokens.
Screenshots or running logs
If applicable, add screenshots or logs to help explain your problem.
Additional context
Add any other context about the problem here.
多个token, 归纳成组, 管理员可以指定不同的用户在不同组.
大神,你好
HTTP错误: Server error ‘500 Internal Server Error’ for url ‘https://bypass.duti.tech/api/conversation’ For more information check: https://httpstatuses.com/500}
提示这种错误,请问要怎么解决?
hello, I have been trying to install the script for about 5 days, but I could not install it at all. Can you give me paid support please? How can I reach you? I really need this.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Successfully started Caddy (pid=17) - Caddy is running in the background
Traceback (most recent call last):
File "/app/backend/main.py", line 16, in <module>
environ["CHATGPT_BASE_URL"] = config.get("chatgpt_base_url", environ.get("CHATGPT_BASE_URL"))
File "/usr/local/lib/python3.10/os.py", line 685, in __setitem__
value = self.encodevalue(value)
File "/usr/local/lib/python3.10/os.py", line 757, in encode
raise TypeError("str expected, not %s" % type(value).__name__)
TypeError: str expected, not NoneType
不确定报错是不是由database_url引起的
config里面我没改任何东西,直接用的 database_url: "sqlite+aiosqlite:////data/database.db"
V2看到的,项目真棒已star
OpenAi just published GPT-4, which is open to ChatGPT Plus users.
Indeed, I'm willing to help you develop this project. :)
cookie 中的 _puid
Hello,
I need to help. If one user uses chatgpt, another user can't use chatgpt. How can I implement two users and more using this system same time.
Regards,
Kadir
Version
v0.2.19
What's your deploying environment?
Describe the problem
前端页面可以正常访问,一旦发生对openai的请求全部无法访问。
不过昨天有一次启动偶然获取到了的会话集合(开了四个会话窗口),之后就再也无法更新,也无法进行对话。
总体表现说明无法正常访问chatgpt。
Your config.yaml or other configurations
docker-compose.yml和您最新的Readme.md(2023.3.24晚)中配置完全一样,只修改了config.yaml中的jwt_secret、user_secret和chatgpt_access_token、reverse_proxy_puid(多次查看和修改保证最新)。
Additional context
我自己做的尝试: 进入docker容器内部,wget www.baidu.com能正常下载页面,wget www.google.com就无法连接,这是因为docker容器内部不能利用宿主机的美国代理导致无法访问chat.openai.com所致吗?如果是应该怎么做呢?如果这不是无法访问chat.openai.com的原因,那又应该怎么做呢?
This project is currently using revChatGPT V1.
According to acheong08/ChatGPT#1158 , your OpenAI account may deactivate if using the V1 bypass. It seems like Plus accounts are less likely to be deactivated.
Please use this project at your own risk. And I'll working on using self-hosted Proxy, which may low down the risk for Plus users.
jwt_secret: "你的 jwt secret
已经开通plus
Is your feature request related to a problem? Please describe.
Access token有效期只有两周,能考虑账号密码的方式吗。
Describe the solution you'd like
Access token有效期只有两周,能考虑账号密码的方式吗。
Describe alternatives you've considered
Access token有效期只有两周,能考虑账号密码的方式吗。
Additional context
Add any other context or screenshots about the feature request here.
请问下,jwt_secret和user_secret到底应该填写什么?
我通过Docker搭建起来后,发现无法正常运行,所以我认为这两个地方没填写正确。
那么请问这两个地方应该填写什么?
Hope to support API
国内的服务器,是chatgpt plus,按文档使用的默认的自定义proxy
启动后,网页输入文字,会在等待4分钟后查看到错误日志
ERROR: [cws.api.routers.chat] Server error '500 Internal Server Error' for url 'http://127.0.0.1:6062/api/conversation'
如果通过docker-compose.yml配置网络代理,已经在宿主机验证过网络代理本身是可用的
environment:
- HTTP_PROXY=http://127.0.0.1:7890
- HTTPS_PROXY=http://127.0.0.1:7890
会立刻查看到错误日志
ERROR: [cws.api.routers.chat] Server error '502 Bad Gateway' for url 'http://127.0.0.1:6062/api/conversation'
这个问题该怎么解决
请问这种报错是哪里的问题?
当CHATGPT官方网页版的历史记录侧提示
History is temporarily unavailable. We're working to restore this feature as soon as possible.
使用docker-compose up无法正常启动,日志如下:
chatgpt-web-share | During handling of the above exception, another exception occurred:
chatgpt-web-share |
chatgpt-web-share | Traceback (most recent call last):
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 60, in map_httpcore_exceptions
chatgpt-web-share | yield
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 353, in handle_async_request
chatgpt-web-share | resp = await self._pool.handle_async_request(req)
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 253, in handle_async_request
chatgpt-web-share | raise exc
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 237, in handle_async_request
chatgpt-web-share | response = await connection.handle_async_request(request)
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection.py", line 90, in handle_async_request
chatgpt-web-share | return await self._connection.handle_async_request(request)
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 112, in handle_async_request
chatgpt-web-share | raise exc
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 91, in handle_async_request
chatgpt-web-share | ) = await self._receive_response_headers(**kwargs)
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 155, in _receive_response_headers
chatgpt-web-share | event = await self._receive_event(timeout=timeout)
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpcore/_async/http11.py", line 191, in _receive_event
chatgpt-web-share | data = await self._network_stream.read(
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpcore/backends/asyncio.py", line 31, in read
chatgpt-web-share | with map_exceptions(exc_map):
chatgpt-web-share | File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
chatgpt-web-share | self.gen.throw(typ, value, traceback)
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
chatgpt-web-share | raise to_exc(exc)
chatgpt-web-share | httpcore.ReadTimeout
chatgpt-web-share |
chatgpt-web-share | The above exception was the direct cause of the following exception:
chatgpt-web-share |
chatgpt-web-share | Traceback (most recent call last):
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/starlette/routing.py", line 677, in lifespan
chatgpt-web-share | async with self.lifespan_context(app) as maybe_state:
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/starlette/routing.py", line 566, in aenter
chatgpt-web-share | await self._router.startup()
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/starlette/routing.py", line 654, in startup
chatgpt-web-share | await handler()
chatgpt-web-share | File "/app/backend/main.py", line 164, in on_startup
chatgpt-web-share | raise e
chatgpt-web-share | File "/app/backend/main.py", line 119, in on_startup
chatgpt-web-share | result = await g.chatgpt_manager.get_conversations()
chatgpt-web-share | File "/app/backend/api/chatgpt.py", line 21, in get_conversations
chatgpt-web-share | conversations = await self.chatbot.get_conversations()
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/revChatGPT/V1.py", line 868, in get_conversations
chatgpt-web-share | response = await self.session.get(url)
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1757, in get
chatgpt-web-share | return await self.request(
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1533, in request
chatgpt-web-share | return await self.send(request, auth=auth, follow_redirects=follow_redirects)
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1620, in send
chatgpt-web-share | response = await self._send_handling_auth(
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1648, in _send_handling_auth
chatgpt-web-share | response = await self._send_handling_redirects(
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1685, in _send_handling_redirects
chatgpt-web-share | response = await self._send_single_request(request)
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1722, in _send_single_request
chatgpt-web-share | response = await transport.handle_async_request(request)
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 352, in handle_async_request
chatgpt-web-share | with map_httpcore_exceptions():
chatgpt-web-share | File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit
chatgpt-web-share | self.gen.throw(typ, value, traceback)
chatgpt-web-share | File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions
chatgpt-web-share | raise mapped_exc(message) from exc
chatgpt-web-share | httpx.ReadTimeout
chatgpt-web-share |
chatgpt-web-share | 2023/03/22 06:16:39.046 ERROR: [uvicorn.error] Application startup failed. Exiting.
没有找到镜像:Error: image moeakwak/chatgpt-web-share:latest not found
目前发下存在以下问题,疑似有BUG
1、使用GPT4的时候,如果输出长文本(大概600字以上),会有中断,此时输入继续,会提示429错误( [cws.api.routers.chat] Client error '429 Too Many Requests' for url 'http://127.0.0.1:6062/api/conversation')。
回到官方,会发现这个提问的回答不存在,仅有问题,显示There was an error generating a response。
2、在以上问题后之后,再这个对话框提出其他问题,会切换成GPT3.5。过一会时间接下去问其他问题,又变成GPT4。官网会有提示(The previous model used in this conversation is unavailable. We've switched you to the latest default model)
3、同样的长文本(大概600字以上),试过直接在官网直接提问GPT4,会在大致一样的地方中断,但是官网在输入继续后在中断处接上去继续回答完了问题。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.