前言
ChatGPT是一个由OpenAI公司开发的大型语言模型,最近火出天际。它可以通过与人类对话,回答各种问题、提供帮助和执行任务。ChatGPT是建立在GPT(Generative Pretrained Transformer)模型上的,它在处理自然语言任务方面表现出色,并且已经被广泛应用于各种领域,例如问答系统、聊天机器人、自然语言处理和语言生成等。
划重点,根据本教程部署完成后。后续使用不在需要翻墙,速度也很快。重度用户的首选,不影响干其她事情
代理
参考: ss服务部署和客户端配置方法
国外vps
准备账号
需要注册一个国外的邮箱,同时准备一个可以接受消息的国外手机号,通过国外节点注册。
chatgpt
官方地址 ,国内无法访问。
openai
调用openai的api,部署在香港节点,省去平时使用需要全局代理上网导致其他网页速度巨慢的缺点。
api-key获取
openapi-key
申请网址: https://platform.openai.com/overview ,需要国外IP访问,香港节点也失败了。
access_token
docker启动
version: '3'
services:
app:
image: chenzhaoyu94/chatgpt-web
#image: chatgpt-web
ports:
- 3002:3002
environment:
# 二选一
OPENAI_API_KEY: sk-xxx
# 超时,单位毫秒,可选
TIMEOUT_MS: 60000
# 访问权限密钥,可选
AUTH_SECRET_KEY: xxx
- gpt-3.5-turbo
- gpt-3.5-turbo-0301
- text-davinci-003
- text-davinci-002
- code-davinci-002
反向代理
利用caddy做反向代理,同时分析每天访问来源
配置
c.webzhan.xyz {
tls admin@webzhan.xyz
encode gzip
log {
output file /opt/logs/c.log
}
header / {
Strict-Transport-Security "max-age=31536000;includeSubdomains;preload"
}
## HTTP 代理配置, chatget-web服务
reverse_proxy 10.7.8.10:3002
}
日志分析
# 生成html
## 最近7天日志
awk -v d=$(date --date="7 days ago" "+%s") '{ match($0, /"ts":([0-9]+.[0-9]+)/, a) } a[1] > d { print $0 }' /var/log/vlive/caddy/c.log > /var/log/vlive/caddy/c_result.log
/usr/local/bin/goaccess -p /usr/local/etc/goaccess/goaccess.conf -o /opt/vlive/app/v/p/c.html -f /var/log/vlive/caddy/c_result.log
## 计划任务
10 0 * * * /bin/bash /opt/vlive/bin/analysis.sh
goaccess忽略面板
vim /usr/local/etc/goaccess/goaccess.conf
#ignore-panel VISITORS
#ignore-panel REQUESTS
ignore-panel REQUESTS_STATIC
ignore-panel NOT_FOUND
#ignore-panel HOSTS
#ignore-panel OS
ignore-panel BROWSERS
ignore-panel VISIT_TIMES
ignore-panel VIRTUAL_HOSTS
ignore-panel REFERRERS
#ignore-panel REFERRING_SITES
ignore-panel KEYPHRASES
ignore-panel STATUS_CODES
ignore-panel REMOTE_USER
#ignore-panel CACHE_STATUS
#ignore-panel GEO_LOCATION
ignore-panel MIME_TYPE
ignore-panel TLS_TYPE
账号余额
官方地址
python脚本(已失效)
# -*- coding: utf-8 -*-
"""
Created on 2023-03-17 21:16:39
---------
@summary:
---------
@author: wxzy1130
"""
import os
# pip3 install httpx
import httpx
import json
#密钥
API_KEY = 'sk-xxxxxxxxxx'
#代理
PROXIES = None
def check_api_key(func):
"""
密钥检查
"""
def wrapper(*args, **kwargs):
api_key = kwargs.get('api_key', API_KEY) or API_KEY
if not api_key:
raise ValueError('API key is required')
if not api_key.startswith('sk-'):
raise ValueError('API key must start with "sk-"')
kwargs['api_key'] = api_key
return func(*args, **kwargs)
return wrapper
@check_api_key
def credit_summary(api_key=None):
"""
获取结果
"""
url = "https://api.openai.com/dashboard/billing/credit_grants"
with httpx.Client(proxies=PROXIES) as client:
response = client.get(
url,
headers={"Authorization": f"Bearer {api_key}"},
timeout=60,
)
return response.json()
def print_credit_summary(data):
"""
打印结果
"""
total_granted = data['total_granted']
total_used = data['total_used']
total_available = data['total_available']
# 计算填充字符个数
padding = max(len('总额度'), len('已使用'), len('未使用'))
# 打印结果
print('结果:\n-------------------------')
print(f'总额度{" "*(padding - len("总额度"))}: {total_granted}')
print(f'已使用{" "*(padding - len("已使用"))}: {total_used}')
print(f'未使用{" "*(padding - len("未使用"))}: {total_available}')
if __name__ == '__main__':
result = credit_summary(api_key=API_KEY)
print_credit_summary(result)
构建最新版
一开始构建失败,最后发现是自己运行服务的节点内存太小导致的。找一台内存大的服务器构建完成,然后复制过来。
# 构建
docker build -t chatgpt-web2 .
# 导出
docker save -o chatgpt-web2.tar chatgpt-web2:latest
# 导入
docker load < chatgpt-web2.tar
清理缓存
版本更新后,chrome本地有缓存不更新
评论 (0)