Browse Source

生成目录项目

master
majiahui@haimaqingfan.com 1 year ago
parent
commit
de5a12d64e
  1. 26
      README.md
  2. 33
      articles_directory_predict.py

26
README.md

@ -0,0 +1,26 @@
## 安装环境
```bash
conda create -n your_env_name python=3.8
```
## 启动项目
启动此项目前必须启动 vllm-main 项目
```bash
conda activate llama_paper
bash run_api_gunicorn.sh
```
## 测试
{
"texts":
"User:任务:生成目录\n为论文题目《俄乌冲突堑壕战研究》生成目录,要求只有一级标题和二级标题,一级标题使用中文数字 例如一、xxx;二级标题使用阿拉伯数字 例如1.1 xxx;一级标题不少于7个;每个一级标题至少包含3个二级标题\n\nAssistant:",
"nums": 3
}
```bash
curl -H "Content-Type: application/json" -X POST -d '{"texts": {"1": "内 容 摘 要","2": "本文基于开放经济条件下外部均衡的调节理论,利用乘数论、吸收论、弹性论对日本近年来始终保持的超宽松货币政策实施效果分别进行理论分析和实证分析,充分说明持续的贬值并不能改善国际收支,指出了安倍经济学的缺点。","3": "本篇文章主要分为四个部分,首先介绍了日本无限量化宽松政策的历史背景和日本国际收支的概况,接着介绍安倍经济学,并用乘数论和吸收论对其政策效果进行理论分析;随后依据弹性论进行建立模型,并进行脉冲响应分析,通过实证分析说明日元贬值并不能很好地改善国际收支,最后进行全文总结。"},"text_type": "chapter"}' http://101.37.83.210:14002/predict
curl -H "Content-Type: application/json" -X POST -d '{"id": "b412fc98-bdd7-11ee-8d23-d5e5c66dd02e"}' http://101.37.83.210:14003/search
```
返回"status_code"不出现 400 则调用成功

33
articles_directory_predict.py

@ -1,18 +1,11 @@
from flask import Flask, jsonify
from flask import request
from transformers import pipeline
import redis
import uuid
import json
from threading import Thread
from vllm import LLM, SamplingParams
import time
import threading
import time
import concurrent.futures
import requests
import socket
def get_host_ip():
"""
查询本机ip地址
@ -27,6 +20,10 @@ def get_host_ip():
return ip
chatgpt_url_predict = "http://{}:12000/predict".format(str(get_host_ip()))
chatgpt_url_search = "http://{}:12000/search".format(str(get_host_ip()))
app = Flask(__name__)
app.config["JSON_AS_ASCII"] = False
@ -141,8 +138,12 @@ def get_multiple_urls(urls):
results = list(executor.map(uuid_search_mp, [results]))
return_list = []
for i, j in zip(urls, results[0]):
return_list.append([i, j])
for i in results[0]:
data = {
"code": 200,
"data": i
}
return_list.append(data)
return return_list
@ -152,19 +153,13 @@ def articles_directory():
nums = request.json["nums"]
nums = int(nums)
url = "http://{}:12000/predict".format(str(get_host_ip()))
input_data = []
for i in range(nums):
input_data.append([url, {"texts": text}])
with concurrent.futures.ThreadPoolExecutor() as executor:
# 使用submit方法将任务提交给线程池,并获取Future对象
futures = [executor.submit(dialog_line_parse, i[0], i[1]) for i in input_data]
# input_data.append([i, chatgpt_url, {"texts": text_sentence[i]}])
input_data.append([i, text])
# 使用as_completed获取已完成的任务,并获取返回值
results = [future.result() for future in concurrent.futures.as_completed(futures)]
results = get_multiple_urls(input_data)
return jsonify(results) # 返回结果

Loading…
Cancel
Save