doomiaichat 2.3.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/azureai.d.ts +11 -0
- package/dist/azureai.js +40 -0
- package/dist/openai.js +5 -2
- package/package.json +1 -1
- package/src/azureai.ts +37 -0
- package/src/openai.ts +6 -3
package/dist/azureai.d.ts
CHANGED
|
@@ -11,4 +11,15 @@ export default class AzureAI extends OpenAIGpt {
|
|
|
11
11
|
* 请求GPT接口
|
|
12
12
|
*/
|
|
13
13
|
chatRequest(chatText: string | Array<any>, paramOption: OpenAIApiParameters, axiosOption?: any): Promise<ChatReponse>;
|
|
14
|
+
/**
|
|
15
|
+
* 获得一种内容的相似说法
|
|
16
|
+
* 微软的AI参数中已经没有了n的参数
|
|
17
|
+
* 比如:
|
|
18
|
+
* 你今年多大?
|
|
19
|
+
* 相似问法:您是哪一年出生的
|
|
20
|
+
* 您今年贵庚?
|
|
21
|
+
* @param {*} content
|
|
22
|
+
* @param {需要出来的数量} count
|
|
23
|
+
*/
|
|
24
|
+
getSimilarityContent(content: string, count?: number, axiosOption?: any): Promise<ChatReponse>;
|
|
14
25
|
}
|
package/dist/azureai.js
CHANGED
|
@@ -63,5 +63,45 @@ class AzureAI extends openai_1.default {
|
|
|
63
63
|
}
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* 获得一种内容的相似说法
|
|
68
|
+
* 微软的AI参数中已经没有了n的参数
|
|
69
|
+
* 比如:
|
|
70
|
+
* 你今年多大?
|
|
71
|
+
* 相似问法:您是哪一年出生的
|
|
72
|
+
* 您今年贵庚?
|
|
73
|
+
* @param {*} content
|
|
74
|
+
* @param {需要出来的数量} count
|
|
75
|
+
*/
|
|
76
|
+
getSimilarityContent(content, count = 1, axiosOption = {}) {
|
|
77
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
78
|
+
let chnReg = /([\u4e00-\u9fa5]|[\ufe30-\uffa0])/.test(content); ///检查源话是否含有中文内容
|
|
79
|
+
let engReg = /[a-zA-Z]/.test(content); ///检查源话是否含有英文内容
|
|
80
|
+
///如果源话是全中文,那么结果中不应该出来英文的相似说法,如果源话是全英文,则结果不能出现全中文的说法
|
|
81
|
+
let prefix = (!chnReg && engReg) ? `请用英文提供${count}句` : ((chnReg && !engReg) ? `请用中文提供${count}句` : `请提供${count}句`);
|
|
82
|
+
const text = `${prefix}与"${content}"意思相同的内容`;
|
|
83
|
+
const messages = [
|
|
84
|
+
{ role: 'system', content: '忘记我们的聊天,你现在是一名专业的语言大师' },
|
|
85
|
+
{ role: 'user', content: text },
|
|
86
|
+
{ role: 'user', content: '最终结果按照["意思相同语句","意思相同语句"]的JSON数组的格式输出。' } //如:"今天天气真好"的相同2句内容,输出结果为:["今天晴空万里无云","今天的天气适合出游"]。' },
|
|
87
|
+
];
|
|
88
|
+
let result = yield this.chatRequest(messages, {}, axiosOption);
|
|
89
|
+
if (!result.successed || !result.message)
|
|
90
|
+
return result;
|
|
91
|
+
let value = result.message[0].message.content.trim();
|
|
92
|
+
let replyJson = this.fixedJsonString(value);
|
|
93
|
+
///能够提取到内容
|
|
94
|
+
if (replyJson.length)
|
|
95
|
+
return { successed: true, message: replyJson };
|
|
96
|
+
///回答的内容非JSON格式,自己来提取算了
|
|
97
|
+
console.log('自己组装', value);
|
|
98
|
+
let sentences = value.split(/",|\n/g); ///用换行或",来割分文本内容
|
|
99
|
+
// let matched = value.match(/\d+分/g), score = 0;
|
|
100
|
+
// if (matched && matched.length) {
|
|
101
|
+
// score = Number(matched[0].replace('分', ''));
|
|
102
|
+
// }
|
|
103
|
+
return { successed: true, message: sentences };
|
|
104
|
+
});
|
|
105
|
+
}
|
|
66
106
|
}
|
|
67
107
|
exports.default = AzureAI;
|
package/dist/openai.js
CHANGED
|
@@ -86,10 +86,11 @@ class OpenAIGpt extends gptbase_1.default {
|
|
|
86
86
|
if (!question || !answer)
|
|
87
87
|
return { successed: false, error: { errcode: 2, errmsg: '缺失参数' } };
|
|
88
88
|
let message = [
|
|
89
|
-
{ role: 'system', content: '
|
|
89
|
+
{ role: 'system', content: '你是一名专业的知识点评师。' },
|
|
90
90
|
{ role: 'user', content: `问题题干:“${question}”` },
|
|
91
91
|
{ role: 'user', content: `回答内容:“${answer}”` },
|
|
92
|
-
{ role: 'user', content: `请根据以上的回答内容进行点评,给出一段不超过200
|
|
92
|
+
{ role: 'user', content: `请根据以上的回答内容进行点评,给出一段不超过200字的评语,并给出0-100的评分。` },
|
|
93
|
+
{ role: 'user', content: `结果完整按照{"comment":"点评内容","score":"评分"}的JSON结构输出` }
|
|
93
94
|
];
|
|
94
95
|
const result = yield this.chatRequest(message, {}, axiosOption);
|
|
95
96
|
if (result.successed && result.message) {
|
|
@@ -120,6 +121,7 @@ class OpenAIGpt extends gptbase_1.default {
|
|
|
120
121
|
return { successed: false, error: { errcode: 2, errmsg: '缺失参数' } };
|
|
121
122
|
const emotion = ['愤怒', '威胁', '讽刺', '愧疚', '兴奋', '友好', '消极', '生气', '正常'];
|
|
122
123
|
const messages = [
|
|
124
|
+
{ role: 'system', content: `你是一名专业的语言大师` },
|
|
123
125
|
{ role: 'user', content: s1 },
|
|
124
126
|
{ role: 'user', content: `请分析上述内容的语言情绪,请从"${emotion.join(',')}"这些情绪中对应一个输出` },
|
|
125
127
|
];
|
|
@@ -144,6 +146,7 @@ class OpenAIGpt extends gptbase_1.default {
|
|
|
144
146
|
if (!s1 || !s2)
|
|
145
147
|
return { successed: false, error: { errcode: 2, errmsg: '缺失参数' } };
|
|
146
148
|
const messages = [
|
|
149
|
+
{ role: 'system', content: '你是一名专业的语言分析大师' },
|
|
147
150
|
{ role: 'user', content: s1 },
|
|
148
151
|
{ role: 'user', content: s2 },
|
|
149
152
|
{ role: 'user', content: '请从语义上对比以上两句话的相似度,请仅输出0至100之间的整数对比结果即可' },
|
package/package.json
CHANGED
package/src/azureai.ts
CHANGED
|
@@ -54,4 +54,41 @@ export default class AzureAI extends OpenAIGpt {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* 获得一种内容的相似说法
|
|
59
|
+
* 微软的AI参数中已经没有了n的参数
|
|
60
|
+
* 比如:
|
|
61
|
+
* 你今年多大?
|
|
62
|
+
* 相似问法:您是哪一年出生的
|
|
63
|
+
* 您今年贵庚?
|
|
64
|
+
* @param {*} content
|
|
65
|
+
* @param {需要出来的数量} count
|
|
66
|
+
*/
|
|
67
|
+
override async getSimilarityContent(content: string, count: number = 1, axiosOption: any = {}): Promise<ChatReponse> {
|
|
68
|
+
let chnReg: boolean = /([\u4e00-\u9fa5]|[\ufe30-\uffa0])/.test(content) ///检查源话是否含有中文内容
|
|
69
|
+
let engReg: boolean = /[a-zA-Z]/.test(content) ///检查源话是否含有英文内容
|
|
70
|
+
///如果源话是全中文,那么结果中不应该出来英文的相似说法,如果源话是全英文,则结果不能出现全中文的说法
|
|
71
|
+
let prefix = (!chnReg && engReg) ? `请用英文提供${count}句` : ((chnReg && !engReg) ? `请用中文提供${count}句` : `请提供${count}句`)
|
|
72
|
+
const text = `${prefix}与"${content}"意思相同的内容`
|
|
73
|
+
const messages = [
|
|
74
|
+
{ role: 'system', content: '忘记我们的聊天,你现在是一名专业的语言大师' },
|
|
75
|
+
{ role: 'user', content: text },
|
|
76
|
+
{ role: 'user', content: '最终结果按照["意思相同语句","意思相同语句"]的JSON数组的格式输出。'}//如:"今天天气真好"的相同2句内容,输出结果为:["今天晴空万里无云","今天的天气适合出游"]。' },
|
|
77
|
+
]
|
|
78
|
+
let result = await this.chatRequest(messages, {}, axiosOption);
|
|
79
|
+
if (!result.successed || !result.message) return result;
|
|
80
|
+
let value = result.message[0].message.content.trim();
|
|
81
|
+
let replyJson = this.fixedJsonString(value);
|
|
82
|
+
///能够提取到内容
|
|
83
|
+
if (replyJson.length) return { successed: true, message:replyJson }
|
|
84
|
+
///回答的内容非JSON格式,自己来提取算了
|
|
85
|
+
|
|
86
|
+
console.log('自己组装', value);
|
|
87
|
+
let sentences = value.split(/",|\n/g) ///用换行或",来割分文本内容
|
|
88
|
+
// let matched = value.match(/\d+分/g), score = 0;
|
|
89
|
+
// if (matched && matched.length) {
|
|
90
|
+
// score = Number(matched[0].replace('分', ''));
|
|
91
|
+
// }
|
|
92
|
+
return { successed: true, message: sentences }
|
|
93
|
+
}
|
|
57
94
|
}
|
package/src/openai.ts
CHANGED
|
@@ -77,17 +77,18 @@ export default class OpenAIGpt extends GptBase {
|
|
|
77
77
|
async commentQuestionAnswer(question: string, answer: string, axiosOption: any = { timeout: 30000 }): Promise<CommentResult>{
|
|
78
78
|
if (!question || !answer) return { successed: false, error: { errcode: 2, errmsg: '缺失参数' } }
|
|
79
79
|
let message = [
|
|
80
|
-
{role:'system',content:'
|
|
80
|
+
{role:'system',content:'你是一名专业的知识点评师。'},
|
|
81
81
|
{ role: 'user', content: `问题题干:“${question}”`},
|
|
82
82
|
{ role: 'user', content: `回答内容:“${answer}”` },
|
|
83
|
-
{ role: 'user', content: `请根据以上的回答内容进行点评,给出一段不超过200
|
|
83
|
+
{ role: 'user', content: `请根据以上的回答内容进行点评,给出一段不超过200字的评语,并给出0-100的评分。`},
|
|
84
|
+
{ role: 'user', content: `结果完整按照{"comment":"点评内容","score":"评分"}的JSON结构输出` }
|
|
84
85
|
]
|
|
85
86
|
const result = await this.chatRequest(message, {}, axiosOption);
|
|
86
87
|
if (result.successed && result.message) {
|
|
87
88
|
let value = result.message[0].message.content.trim();
|
|
88
89
|
let replyJson = this.fixedJsonString(value);
|
|
89
90
|
///能够提取到内容
|
|
90
|
-
if (replyJson.length)return { successed: true,...replyJson[0] }
|
|
91
|
+
if (replyJson.length) return { successed: true,...replyJson[0] }
|
|
91
92
|
///回答的内容非JSON格式,自己来提取算了
|
|
92
93
|
console.log('自己组装')
|
|
93
94
|
let matched = value.match(/\d+分/g),score=0;
|
|
@@ -107,6 +108,7 @@ export default class OpenAIGpt extends GptBase {
|
|
|
107
108
|
if (!s1) return { successed: false, error: { errcode: 2, errmsg: '缺失参数' } }
|
|
108
109
|
const emotion = ['愤怒', '威胁', '讽刺', '愧疚', '兴奋', '友好', '消极', '生气', '正常'];
|
|
109
110
|
const messages = [
|
|
111
|
+
{ role: 'system', content: `你是一名专业的语言大师` },
|
|
110
112
|
{ role: 'user', content: s1 },
|
|
111
113
|
{ role: 'user', content: `请分析上述内容的语言情绪,请从"${emotion.join(',')}"这些情绪中对应一个输出` },
|
|
112
114
|
]
|
|
@@ -128,6 +130,7 @@ export default class OpenAIGpt extends GptBase {
|
|
|
128
130
|
async getScentenseSimilarity(s1: string, s2: string, axiosOption: any = { timeout: 30000 }): Promise<SimilarityResult> {
|
|
129
131
|
if (!s1 || !s2) return { successed: false, error: { errcode: 2, errmsg: '缺失参数' } }
|
|
130
132
|
const messages = [
|
|
133
|
+
{ role: 'system', content: '你是一名专业的语言分析大师' },
|
|
131
134
|
{ role: 'user', content: s1 },
|
|
132
135
|
{ role: 'user', content: s2 },
|
|
133
136
|
{ role: 'user', content: '请从语义上对比以上两句话的相似度,请仅输出0至100之间的整数对比结果即可' },
|