| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- import commonModel from '../model/commonModel.js';
- import fs from 'fs';
- import { stringUtils } from '../util/stringClass.js';
- import aiController from '../api/yjbdc/aiController.js';
- async function runScript(){
- try {
-
- //按照高频单词的使用频率排序,列出所有单词
- const sql="select * from Words where BookID=110 and (ExampleSentence is null or ExampleSentence='') order by ID;"
- let list = await commonModel.RunSql(null,sql);
- let count=list.length;
- const start=0;
- // 添加延时函数,确保每分钟只发送9次请求(约每6.67秒一次请求)
- const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));
- const requestDelay = 7000; // 7秒,确保每分钟最多9次请求
-
- for(let i=start;i<count;i++){
- let item=list[i];
- //获得单词
- const word=item.Word;
- let content={
- "instruction": "用单词"+word+"生成例句,中国学生学习英文使用",
- "requirements": [
- "判断单词在CEFR的最低级别,比如experience是B1",
- "用单词最常用的含义生成最低级别到C1各两句例句,比如experience生成B1、B2、C1各两句",
- "单词允许类似过去式、复数等变形",
- "提供例句翻译",
- "格式要求是JSON格式,完全遵循output_format,另外生成不要有重复“\"”",
- "如果有多个方案,直接给最好的"
- ],
- "output_format":{
- "word":"单词",
- "CEFR_Level":"A1",
- "Sentences": [
- {
- "Sentence":"句子1",
- "Translate": "翻译1",
- "Level": "A1",
- },{
- "Sentence":"句子2",
- "Translate": "翻译2",
- "Level": "A2",
- },
- ]
- }
- };
- content=JSON.stringify(content);
- const aiProvider="llama-4-maverick-17b-128e-instruct";
- //生成例句
- let result = await aiController.generateArticle(content, aiProvider);
- result=result.replace("\"\"CEFR_Level","\"CEFR_Level");
- result=result.replace("CEFR_Level\"\"","CEFR_Level\"");
- console.log(result);
- let sql2="update Words set ExampleSentence=? where ID="+item.ID+";";
- await commonModel.RunSql(result,sql2);
-
- console.log( i +"/"+ list.length);
-
- // 在每次请求后添加延时,除非是最后一个请求
- if (i < count - 1) {
- console.log(`等待 ${requestDelay/1000} 秒后继续下一个请求...`);
- await delay(requestDelay);
- }
- }
-
- console.log("完成");
- } catch (error) {
- console.error('Error executing script:', error);
- }
- }
- // 处理Promise并添加错误捕获
- runScript().catch(error => {
- console.error('Error in runScript:', error);
- });
- ////批量处理加资料的数据
- // async function runScript(){
- // try {
- // const sql="select ID from MiaoguoLiteracy order by ID;"
- // let list = await commonModel.RunSql(null,sql);
- // for(let i=0;i<list.length;i++){
- // if (i % 1000 == 0)
- // console.log("i:"+i+" ID:"+list[i].ID
- // let item =await commonModel.RunSql(null,"select * from MiaoguoLiteracy where ID="+list[i].ID+";"
- // let json;
- // try {
- // json = JSON.parse(item[0].JSONString
- // } catch (parseError) {
- // console.error('JSON Parse Error at ID:', list[i].ID);
- // console.error('Error details:', parseError);
- // continue;
- // }
- // if (json && json.CHN && json.CHN.BiShunArr && json.CHN.BiShunArr.length>0){
- // console.log(i+" "+json.CHN.HanZi);
-
- // delete json.CHN.BiShunArr;
- // let obj={};
- // obj.ID=list[i].ID;
- // obj.JSONString=JSON.stringify(json);
- // await commonModel.RunSql(obj,"update MiaoguoLiteracy set ? where ID="+list[i].ID+";"
- // }
- // //console.log(json);
- // //console.log(item.length);
- // }
- // console.log("完成"
- // } catch (error) {
- // console.error('Error executing script:', error);
- // }
- // }
|