Compare commits
10 Commits
CodeInterp
...
personal_a
| Author | SHA1 | Date | |
|---|---|---|---|
| b6439711c3 | |||
| e4e2430255 | |||
| 1732127a28 | |||
| 56bb8b6498 | |||
| e93b6fa3a6 | |||
| dd4ba0ea22 | |||
| c2701c9ce5 | |||
| 2f019ce359 | |||
| c5b147aeb7 | |||
| 5813d65e52 |
@ -93,7 +93,7 @@ Latex论文一键校对 | [函数插件] 仿Grammarly对Latex文章进行语法
|
|||||||
|
|
||||||
1. 下载项目
|
1. 下载项目
|
||||||
```sh
|
```sh
|
||||||
git clone https://github.com/binary-husky/gpt_academic.git
|
git clone --depth=1 https://github.com/binary-husky/gpt_academic.git
|
||||||
cd gpt_academic
|
cd gpt_academic
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -126,7 +126,7 @@ python -m pip install -r request_llm/requirements_chatglm.txt
|
|||||||
|
|
||||||
# 【可选步骤II】支持复旦MOSS
|
# 【可选步骤II】支持复旦MOSS
|
||||||
python -m pip install -r request_llm/requirements_moss.txt
|
python -m pip install -r request_llm/requirements_moss.txt
|
||||||
git clone https://github.com/OpenLMLab/MOSS.git request_llm/moss # 注意执行此行代码时,必须处于项目根路径
|
git clone --depth=1 https://github.com/OpenLMLab/MOSS.git request_llm/moss # 注意执行此行代码时,必须处于项目根路径
|
||||||
|
|
||||||
# 【可选步骤III】确保config.py配置文件的AVAIL_LLM_MODELS包含了期望的模型,目前支持的全部模型如下(jittorllms系列目前仅支持docker方案):
|
# 【可选步骤III】确保config.py配置文件的AVAIL_LLM_MODELS包含了期望的模型,目前支持的全部模型如下(jittorllms系列目前仅支持docker方案):
|
||||||
AVAIL_LLM_MODELS = ["gpt-3.5-turbo", "api2d-gpt-3.5-turbo", "gpt-4", "api2d-gpt-4", "chatglm", "newbing", "moss"] # + ["jittorllms_rwkv", "jittorllms_pangualpha", "jittorllms_llama"]
|
AVAIL_LLM_MODELS = ["gpt-3.5-turbo", "api2d-gpt-3.5-turbo", "gpt-4", "api2d-gpt-4", "chatglm", "newbing", "moss"] # + ["jittorllms_rwkv", "jittorllms_pangualpha", "jittorllms_llama"]
|
||||||
@ -149,7 +149,7 @@ python main.py
|
|||||||
[](https://github.com/binary-husky/gpt_academic/actions/workflows/build-with-latex.yml)
|
[](https://github.com/binary-husky/gpt_academic/actions/workflows/build-with-latex.yml)
|
||||||
|
|
||||||
``` sh
|
``` sh
|
||||||
git clone https://github.com/binary-husky/gpt_academic.git # 下载项目
|
git clone --depth=1 https://github.com/binary-husky/gpt_academic.git # 下载项目
|
||||||
cd gpt_academic # 进入路径
|
cd gpt_academic # 进入路径
|
||||||
nano config.py # 用任意文本编辑器编辑config.py, 配置 “Proxy”, “API_KEY” 以及 “WEB_PORT” (例如50923) 等
|
nano config.py # 用任意文本编辑器编辑config.py, 配置 “Proxy”, “API_KEY” 以及 “WEB_PORT” (例如50923) 等
|
||||||
docker build -t gpt-academic . # 安装
|
docker build -t gpt-academic . # 安装
|
||||||
|
|||||||
@ -80,6 +80,7 @@ ChatGLM_PTUNING_CHECKPOINT = "" # 例如"/home/hmp/ChatGLM2-6B/ptuning/output/6b
|
|||||||
|
|
||||||
# 本地LLM模型如ChatGLM的执行方式 CPU/GPU
|
# 本地LLM模型如ChatGLM的执行方式 CPU/GPU
|
||||||
LOCAL_MODEL_DEVICE = "cpu" # 可选 "cuda"
|
LOCAL_MODEL_DEVICE = "cpu" # 可选 "cuda"
|
||||||
|
LOCAL_MODEL_QUANT = "FP16" # 默认 "FP16" "INT4" 启用量化INT4版本 "INT8" 启用量化INT8版本
|
||||||
|
|
||||||
|
|
||||||
# 设置gradio的并行线程数(不需要修改)
|
# 设置gradio的并行线程数(不需要修改)
|
||||||
|
|||||||
@ -22,7 +22,8 @@ def split_subprocess(txt, project_folder, return_dict, opts):
|
|||||||
mask = np.zeros(len(txt), dtype=np.uint8) + TRANSFORM
|
mask = np.zeros(len(txt), dtype=np.uint8) + TRANSFORM
|
||||||
|
|
||||||
# 吸收title与作者以上的部分
|
# 吸收title与作者以上的部分
|
||||||
text, mask = set_forbidden_text(text, mask, r"(.*?)\\maketitle", re.DOTALL)
|
text, mask = set_forbidden_text(text, mask, r"^(.*?)\\maketitle", re.DOTALL)
|
||||||
|
text, mask = set_forbidden_text(text, mask, r"^(.*?)\\begin{document}", re.DOTALL)
|
||||||
# 吸收iffalse注释
|
# 吸收iffalse注释
|
||||||
text, mask = set_forbidden_text(text, mask, r"\\iffalse(.*?)\\fi", re.DOTALL)
|
text, mask = set_forbidden_text(text, mask, r"\\iffalse(.*?)\\fi", re.DOTALL)
|
||||||
# 吸收在42行以内的begin-end组合
|
# 吸收在42行以内的begin-end组合
|
||||||
|
|||||||
@ -19,7 +19,7 @@ class AliyunASR():
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
def test_on_error(self, message, *args):
|
def test_on_error(self, message, *args):
|
||||||
# print("on_error args=>{}".format(args))
|
print("on_error args=>{}".format(args))
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def test_on_close(self, *args):
|
def test_on_close(self, *args):
|
||||||
@ -50,6 +50,8 @@ class AliyunASR():
|
|||||||
rad.clean_up()
|
rad.clean_up()
|
||||||
temp_folder = tempfile.gettempdir()
|
temp_folder = tempfile.gettempdir()
|
||||||
TOKEN, APPKEY = get_conf('ALIYUN_TOKEN', 'ALIYUN_APPKEY')
|
TOKEN, APPKEY = get_conf('ALIYUN_TOKEN', 'ALIYUN_APPKEY')
|
||||||
|
if len(TOKEN) == 0:
|
||||||
|
TOKEN = self.get_token()
|
||||||
self.aliyun_service_ok = True
|
self.aliyun_service_ok = True
|
||||||
URL="wss://nls-gateway.aliyuncs.com/ws/v1"
|
URL="wss://nls-gateway.aliyuncs.com/ws/v1"
|
||||||
sr = nls.NlsSpeechTranscriber(
|
sr = nls.NlsSpeechTranscriber(
|
||||||
@ -91,3 +93,38 @@ class AliyunASR():
|
|||||||
self.stop = True
|
self.stop = True
|
||||||
self.stop_msg = 'Aliyun音频服务异常,请检查ALIYUN_TOKEN和ALIYUN_APPKEY是否过期。'
|
self.stop_msg = 'Aliyun音频服务异常,请检查ALIYUN_TOKEN和ALIYUN_APPKEY是否过期。'
|
||||||
r = sr.stop()
|
r = sr.stop()
|
||||||
|
|
||||||
|
def get_token(self):
|
||||||
|
from toolbox import get_conf
|
||||||
|
import json
|
||||||
|
from aliyunsdkcore.request import CommonRequest
|
||||||
|
from aliyunsdkcore.client import AcsClient
|
||||||
|
AccessKey_ID, AccessKey_secret = get_conf('ALIYUN_ACCESSKEY', 'ALIYUN_SECRET')
|
||||||
|
|
||||||
|
# 创建AcsClient实例
|
||||||
|
client = AcsClient(
|
||||||
|
AccessKey_ID,
|
||||||
|
AccessKey_secret,
|
||||||
|
"cn-shanghai"
|
||||||
|
)
|
||||||
|
|
||||||
|
# 创建request,并设置参数。
|
||||||
|
request = CommonRequest()
|
||||||
|
request.set_method('POST')
|
||||||
|
request.set_domain('nls-meta.cn-shanghai.aliyuncs.com')
|
||||||
|
request.set_version('2019-02-28')
|
||||||
|
request.set_action_name('CreateToken')
|
||||||
|
|
||||||
|
try:
|
||||||
|
response = client.do_action_with_exception(request)
|
||||||
|
print(response)
|
||||||
|
jss = json.loads(response)
|
||||||
|
if 'Token' in jss and 'Id' in jss['Token']:
|
||||||
|
token = jss['Token']['Id']
|
||||||
|
expireTime = jss['Token']['ExpireTime']
|
||||||
|
print("token = " + token)
|
||||||
|
print("expireTime = " + str(expireTime))
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
|
||||||
|
return token
|
||||||
|
|||||||
@ -179,12 +179,12 @@ def 语音助手(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt
|
|||||||
import nls
|
import nls
|
||||||
from scipy import io
|
from scipy import io
|
||||||
except:
|
except:
|
||||||
chatbot.append(["导入依赖失败", "使用该模块需要额外依赖, 安装方法:```pip install --upgrade pyOpenSSL scipy git+https://github.com/aliyun/alibabacloud-nls-python-sdk.git```"])
|
chatbot.append(["导入依赖失败", "使用该模块需要额外依赖, 安装方法:```pip install --upgrade aliyun-python-sdk-core==2.13.3 pyOpenSSL scipy git+https://github.com/aliyun/alibabacloud-nls-python-sdk.git```"])
|
||||||
yield from update_ui(chatbot=chatbot, history=history) # 刷新界面
|
yield from update_ui(chatbot=chatbot, history=history) # 刷新界面
|
||||||
return
|
return
|
||||||
|
|
||||||
TOKEN, APPKEY = get_conf('ALIYUN_TOKEN', 'ALIYUN_APPKEY')
|
APPKEY = get_conf('ALIYUN_APPKEY')
|
||||||
if TOKEN == "" or APPKEY == "":
|
if APPKEY == "":
|
||||||
chatbot.append(["导入依赖失败", "没有阿里云语音识别APPKEY和TOKEN, 详情见https://help.aliyun.com/document_detail/450255.html"])
|
chatbot.append(["导入依赖失败", "没有阿里云语音识别APPKEY和TOKEN, 详情见https://help.aliyun.com/document_detail/450255.html"])
|
||||||
yield from update_ui(chatbot=chatbot, history=history) # 刷新界面
|
yield from update_ui(chatbot=chatbot, history=history) # 刷新界面
|
||||||
return
|
return
|
||||||
|
|||||||
@ -37,15 +37,23 @@ class GetGLMHandle(Process):
|
|||||||
# 子进程执行
|
# 子进程执行
|
||||||
# 第一次运行,加载参数
|
# 第一次运行,加载参数
|
||||||
retry = 0
|
retry = 0
|
||||||
|
LOCAL_MODEL_QUANT, device = get_conf('LOCAL_MODEL_QUANT', 'LOCAL_MODEL_DEVICE')
|
||||||
|
|
||||||
|
if LOCAL_MODEL_QUANT == "INT4": # INT4
|
||||||
|
_model_name_ = "THUDM/chatglm2-6b-int4"
|
||||||
|
elif LOCAL_MODEL_QUANT == "INT8": # INT8
|
||||||
|
_model_name_ = "THUDM/chatglm2-6b-int8"
|
||||||
|
else:
|
||||||
|
_model_name_ = "THUDM/chatglm2-6b" # FP16
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
if self.chatglm_model is None:
|
if self.chatglm_model is None:
|
||||||
self.chatglm_tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True)
|
self.chatglm_tokenizer = AutoTokenizer.from_pretrained(_model_name_, trust_remote_code=True)
|
||||||
device, = get_conf('LOCAL_MODEL_DEVICE')
|
|
||||||
if device=='cpu':
|
if device=='cpu':
|
||||||
self.chatglm_model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).float()
|
self.chatglm_model = AutoModel.from_pretrained(_model_name_, trust_remote_code=True).float()
|
||||||
else:
|
else:
|
||||||
self.chatglm_model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).half().cuda()
|
self.chatglm_model = AutoModel.from_pretrained(_model_name_, trust_remote_code=True).half().cuda()
|
||||||
self.chatglm_model = self.chatglm_model.eval()
|
self.chatglm_model = self.chatglm_model.eval()
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
|
|||||||
@ -681,6 +681,7 @@ def read_single_conf_with_lru_cache(arg):
|
|||||||
else:
|
else:
|
||||||
print亮红( "[API_KEY] 您的 API_KEY 不满足任何一种已知的密钥格式,请在config文件中修改API密钥之后再运行。")
|
print亮红( "[API_KEY] 您的 API_KEY 不满足任何一种已知的密钥格式,请在config文件中修改API密钥之后再运行。")
|
||||||
if arg == 'proxies':
|
if arg == 'proxies':
|
||||||
|
if not read_single_conf_with_lru_cache('USE_PROXY'): r = None # 检查USE_PROXY,防止proxies单独起作用
|
||||||
if r is None:
|
if r is None:
|
||||||
print亮红('[PROXY] 网络代理状态:未配置。无代理状态下很可能无法访问OpenAI家族的模型。建议:检查USE_PROXY选项是否修改。')
|
print亮红('[PROXY] 网络代理状态:未配置。无代理状态下很可能无法访问OpenAI家族的模型。建议:检查USE_PROXY选项是否修改。')
|
||||||
else:
|
else:
|
||||||
|
|||||||
6
version
6
version
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"version": 3.46,
|
"version": 3.47,
|
||||||
"show_feature": true,
|
"show_feature": true,
|
||||||
"new_feature": "临时修复theme的文件丢失问题 <-> 新增实时语音对话插件(自动断句,脱手对话) <-> 支持加载自定义的ChatGLM2微调模型 <-> 动态ChatBot窗口高度 <-> 修复Azure接口的BUG <-> 完善多语言模块 <-> 完善本地Latex矫错和翻译功能 <-> 增加gpt-3.5-16k的支持 <-> 新增最强Arxiv论文翻译插件 <-> 修复gradio复制按钮BUG <-> 修复PDF翻译的BUG, 新增HTML中英双栏对照 <-> 添加了OpenAI图片生成插件"
|
"new_feature": "优化一键升级 <-> 提高arxiv翻译速度和成功率 <-> 支持自定义APIKEY格式 <-> 临时修复theme的文件丢失问题 <-> 新增实时语音对话插件(自动断句,脱手对话) <-> 支持加载自定义的ChatGLM2微调模型 <-> 动态ChatBot窗口高度 <-> 修复Azure接口的BUG <-> 完善多语言模块 <-> 完善本地Latex矫错和翻译功能 <-> 增加gpt-3.5-16k的支持"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user