1.调整提示词,以生成符合队友需求格式的PPT大纲和PPT内容。
经过尝试发现,如果大纲和内容分开生成,传两次,生成PPT那边会发生多进程并发,会让输入流提前异常结束,所以一次完成二者的生成。
设计思路:先把用户发的主题传进来,生成对应格式的大纲,再把大纲直接传进去,生成对应格式的内容。
while (scanner.hasNext()) {
ChatClient chats = new ChatClient(apiKeyss); // 初始化ChatClient实例
chats.registerShutdownHook();
String userInput = scanner.nextLine();
chats.AsyncInvoke(userInput); // 将输入的问题分配给异步请求
// chats.SSEInvoke(userInput); // 将输入的问题分配给SSE请求
// 处理辅导PPT
// System.out.print("PPT指导员: " + chats.getResponseMessage()); // 打印出ChatGLM的响应
// 处理生成PPT
outline = chats.getResponseMessage();
System.out.print(outline); // 打印出ChatGLM的响应
System.out.println("\n");
// chats.AsyncInvoke(outline);
chats.SSEInvoke(outline);
System.out.print(chats.getResponseMessage());
// 处理PPT评价
// System.out.print(chats.getResponseMessage());
System.out.println("\n");
System.out.print("你: ");
}
提示词:
2.实现文心一言大模型的调用(python)。
import requests
import json
# 修改成自己的api key和secret key
API_KEY = "9lz*********yavpg"
SECRET_KEY = "5W4*****************RzyGW0T"
def main():
url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=" + get_access_token()
while (1):
s = input()
# 注意message必须是奇数条
payload = json.dumps({
"messages": [
{
"role": "user",
"content": s
}
]
})
headers = {
'Content-Type': 'application/json'
}
res = requests.request("POST", url, headers=headers, data=payload).json()
print(res['result'])
def get_access_token():
"""
使用 AK,SK 生成鉴权签名(Access Token)
:return: access_token,或是None(如果错误)
"""
url = "https://aip.baidubce.com/oauth/2.0/token"
params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
return str(requests.post(url, params=params).json().get("access_token"))
if __name__ == '__main__':
main()