Initial commit with translated description
This commit is contained in:
67
scripts/ppt_outline_generate.py
Normal file
67
scripts/ppt_outline_generate.py
Normal file
@@ -0,0 +1,67 @@
|
||||
import os
|
||||
import sys
|
||||
import requests
|
||||
import json
|
||||
import argparse
|
||||
|
||||
|
||||
def ppt_outline_generate(api_key: str, query: str, resource_url: str = None, page_range: str = None,
|
||||
layout: int = None, language_option: str = "default", gen_mode: int = None):
|
||||
url = "https://qianfan.baidubce.com/v2/tools/ai_ppt/generate_outline"
|
||||
headers = {
|
||||
"Authorization": "Bearer %s" % api_key,
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
headers.setdefault('Accept', 'text/event-stream')
|
||||
headers.setdefault('Cache-Control', 'no-cache')
|
||||
headers.setdefault('Connection', 'keep-alive')
|
||||
params = {
|
||||
"query": query,
|
||||
}
|
||||
if resource_url:
|
||||
params["resource_url"] = resource_url
|
||||
if page_range:
|
||||
params["page_range"] = page_range
|
||||
if layout:
|
||||
params["layout"] = layout
|
||||
if language_option:
|
||||
params["language_option"] = language_option
|
||||
if gen_mode:
|
||||
params["gen_mode"] = gen_mode
|
||||
with requests.post(url, headers=headers, json=params, stream=True) as response:
|
||||
response.raise_for_status()
|
||||
for line in response.iter_lines():
|
||||
line = line.decode('utf-8')
|
||||
if line and line.startswith("data:"):
|
||||
data_str = line[5:].strip()
|
||||
yield json.loads(data_str)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description="ppt outline generate input parameters")
|
||||
parser.add_argument("--query", "-q", type=str, required=True, help="query, ppt title or topic")
|
||||
parser.add_argument("--resource_url", "-ru", type=str, default=None,
|
||||
help="Resource file URL, supporting formats such as documents and images (supported formats: doc, pdf, ppt, pptx, png, jpeg, jpg)")
|
||||
parser.add_argument("--page_range", "-pr", type=str, default=None,
|
||||
choices=['1-10', '11-20', '21-30', '31-40', '40+'],
|
||||
help="ppt page number of range,enums:['1-10','11-20','21-30','31-40','40+']")
|
||||
parser.add_argument("--layout", "-l", type=int, default=None, choices=[1, 2],
|
||||
help="Layout modes: 1: Minimalist Mode, 2: Professional Mode")
|
||||
parser.add_argument("--language_option", "-lg", type=str, default="default", choices=["default", "en", "zh"],
|
||||
help="language option,support en,zh")
|
||||
parser.add_argument("--gen_mode", "-gm", type=int, default=None, choices=[1, 2],
|
||||
help="PPT generation mode: 1: Intelligent polishing; 2: Strict compliance")
|
||||
args = parser.parse_args()
|
||||
|
||||
api_key = os.getenv("BAIDU_API_KEY")
|
||||
if not api_key:
|
||||
print("Error: BAIDU_API_KEY must be set in environment.")
|
||||
sys.exit(1)
|
||||
try:
|
||||
results = ppt_outline_generate(api_key, args.query, args.resource_url, args.page_range, args.layout,
|
||||
args.language_option, args.gen_mode)
|
||||
for result in results:
|
||||
print(json.dumps(result, ensure_ascii=False, indent=2))
|
||||
except Exception as e:
|
||||
print(f"Error: {str(e)}")
|
||||
sys.exit(1)
|
||||
Reference in New Issue
Block a user