From de5a12d64e3eeae6a1efce4650c63ca6874b3b1d Mon Sep 17 00:00:00 2001 From: "majiahui@haimaqingfan.com" Date: Mon, 29 Jan 2024 18:31:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E7=9B=AE=E5=BD=95=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 26 ++++++++++++++++++++++++++ articles_directory_predict.py | 33 ++++++++++++++------------------- 2 files changed, 40 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index e69de29..3935e42 100644 --- a/README.md +++ b/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 则调用成功 \ No newline at end of file diff --git a/articles_directory_predict.py b/articles_directory_predict.py index e8f192f..c3d4380 100644 --- a/articles_directory_predict.py +++ b/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) # 返回结果