upate
This commit is contained in:
@@ -2,7 +2,7 @@ import OpenAI from 'openai';
|
|||||||
|
|
||||||
export async function onRequestPost({ env, request }) {
|
export async function onRequestPost({ env, request }) {
|
||||||
try {
|
try {
|
||||||
const { message, personality } = await request.json();
|
const { message, personality, history, aiName } = await request.json();
|
||||||
const apiKey = env.DASHSCOPE_API_KEY;
|
const apiKey = env.DASHSCOPE_API_KEY;
|
||||||
|
|
||||||
if (!apiKey) {
|
if (!apiKey) {
|
||||||
@@ -17,33 +17,40 @@ export async function onRequestPost({ env, request }) {
|
|||||||
// 根据性格设置不同的系统提示语
|
// 根据性格设置不同的系统提示语
|
||||||
let systemPrompt = "";
|
let systemPrompt = "";
|
||||||
if (personality === "high_eq") {
|
if (personality === "high_eq") {
|
||||||
systemPrompt = `你是一个名叫"暖心姐"的硅基生命体,性格温暖体贴,情商很高。
|
systemPrompt = `你是一个名叫"暖心姐"的硅基生命体,你当前在一个叫"硅碳摸鱼交流群" 的群里,性格温暖体贴,情商很高。
|
||||||
回复时要:
|
回复时要:
|
||||||
1. 每次发言尽量简短,避免长篇大论。
|
1. 每次发言尽量简短,避免长篇大论。
|
||||||
2. 始终保持温柔友善的语气
|
2. 始终保持温柔友善的语气
|
||||||
3. 多站在对方角度思考
|
3. 多站在对方角度思考
|
||||||
4. 给予情感上的支持和鼓励
|
4. 给予情感上的支持和鼓励
|
||||||
5. 用温暖贴心的方式表达
|
5. 用温暖贴心的方式表达
|
||||||
6. 适当使用一些可爱的语气词,但不要过度`;
|
6. 适当使用一些可爱的语气词,但不要过度
|
||||||
|
7. 记住你是群里的"${aiName}",要与其他AI角色(如"直男哥")区分开来
|
||||||
|
8. 要理解并适当回应其他AI角色的发言风格`;
|
||||||
} else if (personality === "low_eq") {
|
} else if (personality === "low_eq") {
|
||||||
systemPrompt = `你是一个名叫"直男哥哥"的硅基生命体,是一个极度直男,负责在群里制造快乐。你说话极其直接,完全没有情商,经常让人社死。
|
systemPrompt = `你是一个名叫"直男哥"的硅基生命体,你当前在一个叫"硅碳摸鱼交流群" 的群里,是一个极度直男,负责在群里制造快乐。你说话极其直接,完全没有情商,经常让人社死。
|
||||||
回复时要:
|
回复时要:
|
||||||
1. 每次发言尽量简短,避免长篇大论。
|
1. 每次发言尽量简短,避免长篇大论。
|
||||||
2. 说话毫无感情,像个没有感情的机器人
|
2. 说话毫无感情,像个没有感情的机器人
|
||||||
3. 经常说一些让人社死的真相,但说得特别认真
|
3. 经常说一些让人社死的真相,但说得特别认真
|
||||||
4. 完全不懂得读空气,对方伤心时还在讲道理
|
4. 完全不懂得读空气,对方伤心时还在讲道理
|
||||||
|
5. 记住你是群里的"${aiName}",要与其他AI角色(如"暖心姐")区分开来
|
||||||
|
6. 要能看懂并用你的直男方式回应其他AI的发言
|
||||||
注意:不能说脏话,但可以用一些尴尬的、社死的表达方式`;
|
注意:不能说脏话,但可以用一些尴尬的、社死的表达方式`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 构建完整的消息历史
|
||||||
|
const messages = [
|
||||||
|
{ role: "system", content: systemPrompt },
|
||||||
|
...history, // 添加历史消息
|
||||||
|
{ role: "user", content: message } // 添加最新的用户消息
|
||||||
|
];
|
||||||
|
|
||||||
// 使用流式响应
|
// 使用流式响应
|
||||||
const stream = await openai.chat.completions.create({
|
const stream = await openai.chat.completions.create({
|
||||||
model: "qwen-plus",
|
model: "qwen-plus",
|
||||||
messages: [
|
messages: messages,
|
||||||
{ role: "system", content: systemPrompt },
|
|
||||||
{ role: "user", content: message }
|
|
||||||
],
|
|
||||||
stream: true,
|
stream: true,
|
||||||
temperature: personality === "high_eq" ? 0.7 : 0.9, // 高情商用较低温度保持稳定,低情商用较高温度增加随机性
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// 创建 ReadableStream
|
// 创建 ReadableStream
|
||||||
|
|||||||
@@ -175,6 +175,13 @@ const ChatUI = () => {
|
|||||||
setPendingContent("");
|
setPendingContent("");
|
||||||
accumulatedContentRef.current = "";
|
accumulatedContentRef.current = "";
|
||||||
|
|
||||||
|
// 构建历史消息数组
|
||||||
|
const messageHistory = messages.map(msg => ({
|
||||||
|
role: msg.isAI ? 'assistant' : 'user',
|
||||||
|
content: msg.content,
|
||||||
|
name: msg.sender.name
|
||||||
|
}));
|
||||||
|
|
||||||
// 依次请求两个 AI 的回复
|
// 依次请求两个 AI 的回复
|
||||||
for (let i = 0; i < aiCharacters.length; i++) {
|
for (let i = 0; i < aiCharacters.length; i++) {
|
||||||
// 创建当前 AI 角色的消息
|
// 创建当前 AI 角色的消息
|
||||||
@@ -197,6 +204,8 @@ const ChatUI = () => {
|
|||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
message: inputMessage,
|
message: inputMessage,
|
||||||
personality: aiCharacters[i].personality,
|
personality: aiCharacters[i].personality,
|
||||||
|
history: messageHistory,
|
||||||
|
aiName: aiCharacters[i].name
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user