194 lines
6.5 KiB
Go
194 lines
6.5 KiB
Go
package spark
|
|
|
|
import (
|
|
"StuAcaWorksAI/proto"
|
|
"StuAcaWorksAI/worker"
|
|
"encoding/json"
|
|
"log"
|
|
"strconv"
|
|
"time"
|
|
)
|
|
|
|
func SparkPPTThemeList(model *proto.ModelParam, req proto.GetSparkPPTThemeReq) (proto.PPTThemeResponse, error) {
|
|
url := "https://zwapi.xfyun.cn/api/ppt/v2/template/list"
|
|
headers, err := getSparkRequestHeaders(model.APPID, model.APISecret)
|
|
if err != nil {
|
|
log.Println("Spark PPT Theme Error getting headers:", err)
|
|
return proto.PPTThemeResponse{}, err
|
|
}
|
|
//log.Println("Spark PPT Theme headers:", headers)
|
|
|
|
req_ := proto.PPTThemeRequest{
|
|
Style: req.Style,
|
|
Color: req.Color,
|
|
Industry: req.Industry,
|
|
PageNum: 1,
|
|
PageSize: 10,
|
|
}
|
|
|
|
reqStr, err := json.Marshal(req_)
|
|
if err != nil {
|
|
log.Println("Spark PPT Theme Error encoding request:", err)
|
|
return proto.PPTThemeResponse{}, err
|
|
}
|
|
log.Println("Spark PPT Theme req:", string(reqStr))
|
|
|
|
err, resp := worker.DoPostRequestJSON(url, reqStr, headers)
|
|
var response proto.PPTThemeResponse
|
|
if err != nil {
|
|
log.Println("Spark PPT Theme Error:", err)
|
|
} else {
|
|
err = json.Unmarshal(resp, &response)
|
|
if err != nil {
|
|
log.Println("Spark PPT Theme Error decoding response:", err)
|
|
}
|
|
}
|
|
log.Println("Spark PPT Theme Response:", string(resp))
|
|
//log.Println("Spark PPT Theme Response:", response)
|
|
return response, err
|
|
}
|
|
|
|
func getSparkRequestHeaders(appId, apiSecret string) (map[string]string, error) {
|
|
headers := map[string]string{
|
|
"appId": "d3a4647c",
|
|
"timestamp": strconv.FormatInt(time.Now().Unix(), 10),
|
|
}
|
|
algorithm := ApiAuthAlgorithm{}
|
|
signature := algorithm.GetSignature(appId, apiSecret, time.Now().Unix())
|
|
headers["signature"] = signature
|
|
return headers, nil
|
|
}
|
|
|
|
// 根据用户输入及文档生成大纲,文档可以是docx、doc、txt、pdf格式
|
|
func SparkCreateOutlineByDoc(model *proto.ModelParam, userReq *proto.SparkCreateOutlineRequest) (proto.SparkCreateOutlineResponse, error) {
|
|
url := "https://zwapi.xfyun.cn/api/ppt/v2/createOutlineByDoc"
|
|
headers, err := getSparkRequestHeaders(model.APPID, model.APISecret)
|
|
if err != nil {
|
|
log.Println("Spark PPT Theme Error getting headers:", err)
|
|
return proto.SparkCreateOutlineResponse{}, err
|
|
}
|
|
log.Println("Spark create outline by doc headers:", headers)
|
|
|
|
req := proto.SparkCreateOutlineByDocRequest{
|
|
Query: userReq.Query,
|
|
FileUrl: userReq.FileUrl,
|
|
FileName: userReq.FileName,
|
|
}
|
|
|
|
reqStr, err := json.Marshal(req)
|
|
if err != nil {
|
|
log.Println("Spark create outline by doc Error encoding request:", err)
|
|
}
|
|
log.Println("Spark create outline by doc req:", string(reqStr))
|
|
|
|
err, resp := worker.DoPostRequestForm(url, reqStr, headers)
|
|
//log.Println("Spark create outline by doc Response:", string(resp))
|
|
var response proto.SparkCreateOutlineResponse
|
|
if err != nil {
|
|
log.Println("Spark create outline by doc Error:", err)
|
|
} else {
|
|
err = json.Unmarshal(resp, &response)
|
|
if err != nil {
|
|
log.Println("Spark create outline by doc Error decoding response:", err)
|
|
}
|
|
}
|
|
log.Println("Spark create outline by doc Response struct:", response)
|
|
return response, err
|
|
}
|
|
|
|
// 根据query生成大纲
|
|
func SparkCreateOutline(model *proto.ModelParam, userReq *proto.SparkCreateOutlineRequest) (proto.SparkCreateOutlineResponse, error) {
|
|
url := "https://zwapi.xfyun.cn/api/ppt/v2/createOutline"
|
|
headers, err := getSparkRequestHeaders(model.APPID, model.APISecret)
|
|
if err != nil {
|
|
log.Println("Spark PPT Theme Error getting headers:", err)
|
|
return proto.SparkCreateOutlineResponse{}, err
|
|
}
|
|
log.Println("Spark create outline by doc headers:", headers)
|
|
|
|
//自定义内容
|
|
req := proto.SparkCreateOutlineByDocRequest{
|
|
Query: userReq.Query,
|
|
}
|
|
reqStr, err := json.Marshal(req)
|
|
if err != nil {
|
|
log.Println("Spark create PPT Error encoding request:", err)
|
|
}
|
|
log.Println("Spark create PPT req:", string(reqStr))
|
|
|
|
err, resp := worker.DoPostRequestForm(url, reqStr, headers)
|
|
log.Println("Spark create PPT Response:", string(resp))
|
|
var response proto.SparkCreateOutlineResponse
|
|
if err != nil {
|
|
log.Println("Spark create PPT Error:", err)
|
|
} else {
|
|
err = json.Unmarshal(resp, &response)
|
|
if err != nil {
|
|
log.Println("Spark create PPT Error decoding response:", err)
|
|
}
|
|
}
|
|
log.Println("Spark create PPT Response struct:", response)
|
|
return response, err
|
|
}
|
|
|
|
func SparkCreatePPTByOutline(model *proto.ModelParam, userReq *proto.SparkCreatePPTByOutlineUserRequest) (proto.SparkCreatePPTByOutlineResponse, error) {
|
|
url := "https://zwapi.xfyun.cn/api/ppt/v2/createPptByOutline"
|
|
headers, err := getSparkRequestHeaders(model.APPID, model.APISecret)
|
|
if err != nil {
|
|
log.Println("Spark create ppt by outline Error encoding request:", err)
|
|
return proto.SparkCreatePPTByOutlineResponse{}, err
|
|
}
|
|
log.Println("Spark create ppt by outline headers:", headers)
|
|
|
|
req := proto.SparkCreatePptByOutlineRequest{
|
|
Query: userReq.Query,
|
|
FileUrl: userReq.FileUrl,
|
|
FileName: userReq.FileName,
|
|
Outline: userReq.Outline,
|
|
}
|
|
|
|
reqStr, err := json.Marshal(req)
|
|
if err != nil {
|
|
log.Println("Spark create ppt by outline Error encoding request:", err)
|
|
}
|
|
log.Println("Spark create ppt by outline req:", string(reqStr))
|
|
|
|
err, resp := worker.DoPostRequestJSON(url, reqStr, headers)
|
|
log.Println("Spark create ppt by outline Response:", string(resp))
|
|
var response proto.SparkCreatePPTByOutlineResponse
|
|
if err != nil {
|
|
log.Println("Spark create ppt by outline Error:", err)
|
|
} else {
|
|
err = json.Unmarshal(resp, &response)
|
|
if err != nil {
|
|
log.Println("Spark create ppt by outline Error decoding response:", err)
|
|
}
|
|
}
|
|
log.Println("Spark create ppt by outline Response struct:", response)
|
|
return response, err
|
|
}
|
|
|
|
func SparkGetPPTInfoBySID(model *proto.ModelParam, userReq *proto.SparkCreatePPTByOutlineUserRequest) (proto.SparkCreatePPTByOutlineResponse, error) {
|
|
url := "https://zwapi.xfyun.cn/api/ppt/v2/progress?sid=" + userReq.Sid
|
|
headers, err := getSparkRequestHeaders(model.APPID, model.APISecret)
|
|
if err != nil {
|
|
log.Println("Spark create ppt by outline Error encoding request:", err)
|
|
return proto.SparkCreatePPTByOutlineResponse{}, err
|
|
}
|
|
log.Println("Spark create ppt by outline headers:", headers)
|
|
|
|
err, resp := worker.DoGetRequest(url, headers)
|
|
log.Println("Spark create ppt by outline Response:", string(resp))
|
|
var response proto.SparkCreatePPTByOutlineResponse
|
|
if err != nil {
|
|
log.Println("Spark create ppt by outline Error:", err)
|
|
} else {
|
|
err = json.Unmarshal(resp, &response)
|
|
if err != nil {
|
|
log.Println("Spark create ppt by outline Error decoding response:", err)
|
|
}
|
|
}
|
|
log.Println("Spark create ppt by outline Response struct:", response)
|
|
return response, err
|
|
}
|