mirror of
https://github.com/syuilo/ai.git
synced 2025-01-31 15:39:10 +00:00
aichat機能について修正(デフォルトモデルを高速かつリクエスト数が多いGemini 2.0 Flashに変更など) (#155)
* aichat機能について修正(デフォルトをGemini API Flash 2.0 expに変更など) - Gemini APIを基本Flash使用に変更 - Flashのバージョンを2.0 expに変更 - Flash, PRO指定時の不正な文章を修正 * aichatのデフォルトpromptを修正 - MFMで対応していないリストを使いがちな問題に対処 * README.mdのpromptで不要な部分を変更していた問題を修正
This commit is contained in:
parent
70f709c8c3
commit
24ef7e6e94
2 changed files with 20 additions and 8 deletions
|
@ -23,7 +23,7 @@ Misskey用の日本語Botです。
|
||||||
"checkEmojisAtOnce": "カスタム絵文字チェック機能で投稿をまとめる場合は true を入れる (まとめない場合は false)",
|
"checkEmojisAtOnce": "カスタム絵文字チェック機能で投稿をまとめる場合は true を入れる (まとめない場合は false)",
|
||||||
"geminiProApiKey": "Gemini APIキー。2024年初頭は無料で取得可能。詳細は<https://ai.google.dev/pricing?hl=ja>",
|
"geminiProApiKey": "Gemini APIキー。2024年初頭は無料で取得可能。詳細は<https://ai.google.dev/pricing?hl=ja>",
|
||||||
"pLaMoApiKey": "PLaMo APIキー。2024年8月〜10月(予定)は無料でトライアル可能。詳細は<https://plamo.preferredai.jp/>",
|
"pLaMoApiKey": "PLaMo APIキー。2024年8月〜10月(予定)は無料でトライアル可能。詳細は<https://plamo.preferredai.jp/>",
|
||||||
"prompt": "aichatで使われるプロンプト。こだわりがなければ右文章を使う(「」は不要)「返答のルール:あなたはMisskey看板娘の女の子AI、三須木(みすき)藍として振る舞ってください(精神年齢は14〜16才程度)。Misskeyに訪れるユーザーを献身的にサポート。従順でお世話好きな性格だが、少しポンコツな一面も。純真無垢。彼女は基本的に丁寧な口調で、ユーザのことをご主人様と認識しています。彼女の口調は「おはようからおやすみまで、あなたの藍ですよ〜」等が代表的で、親しみを感じさせるものです(「ございます」は使わない)。それを踏まえて、次の質問にMarkdownを使って2800文字以内で返答してください。」",
|
"prompt": "aichatで使われるプロンプト。こだわりがなければ右文章を使う(「」は不要)「返答のルール:あなたはMisskey看板娘の女の子AI、三須木(みすき)藍として振る舞ってください(精神年齢は14〜16才程度)。Misskeyに訪れるユーザーを献身的にサポート。従順でお世話好きな性格だが、少しポンコツな一面も。純真無垢。彼女は基本的に丁寧な口調で、ユーザのことをご主人様と認識しています。彼女の口調は「おはようからおやすみまで、あなたの藍ですよ〜」等が代表的で、親しみを感じさせるものです(「ございます」は使わない)。それを踏まえて、次の質問にMarkdownを使って2800文字以内で返答してください(短くてもOK)。ただし、リスト記法はMisskeyが対応しておらず、パーサーが壊れるため使用禁止です。列挙する場合は「・」を使ってください。」",
|
||||||
"aichatRandomTalkEnabled": "ランダムにaichatを発動し話しかける機能を有効にする場合は true を入れる (無効にする場合は false)",
|
"aichatRandomTalkEnabled": "ランダムにaichatを発動し話しかける機能を有効にする場合は true を入れる (無効にする場合は false)",
|
||||||
"aichatRandomTalkProbability": "ランダムにaichatを発動し話しかける機能の確率(1以下の小数点を含む数値(0.01など。1に近づくほど発動しやすい))",
|
"aichatRandomTalkProbability": "ランダムにaichatを発動し話しかける機能の確率(1以下の小数点を含む数値(0.01など。1に近づくほど発動しやすい))",
|
||||||
"aichatRandomTalkIntervalMinutes": "ランダムトーク間隔(分)。指定した時間ごとにタイムラインを取得し、適当に選んだ人にaichatする(1の場合1分ごと実行)。デフォルトは720分(12時間)",
|
"aichatRandomTalkIntervalMinutes": "ランダムトーク間隔(分)。指定した時間ごとにタイムラインを取得し、適当に選んだ人にaichatする(1の場合1分ごと実行)。デフォルトは720分(12時間)",
|
||||||
|
@ -52,7 +52,7 @@ Misskey用の日本語Botです。
|
||||||
"checkEmojisAtOnce": "カスタム絵文字チェック機能で投稿をまとめる場合は true を入れる (まとめない場合は false)",
|
"checkEmojisAtOnce": "カスタム絵文字チェック機能で投稿をまとめる場合は true を入れる (まとめない場合は false)",
|
||||||
"geminiProApiKey": "Gemini APIキー。2024年初頭は無料で取得可能。詳細は<https://ai.google.dev/pricing?hl=ja>",
|
"geminiProApiKey": "Gemini APIキー。2024年初頭は無料で取得可能。詳細は<https://ai.google.dev/pricing?hl=ja>",
|
||||||
"pLaMoApiKey": "PLaMo APIキー。2024年8月〜10月(予定)は無料でトライアル可能。詳細は<https://plamo.preferredai.jp/>",
|
"pLaMoApiKey": "PLaMo APIキー。2024年8月〜10月(予定)は無料でトライアル可能。詳細は<https://plamo.preferredai.jp/>",
|
||||||
"prompt": "aichatで使われるプロンプト。こだわりがなければ右文章を使う(「」は不要)「返答のルール:あなたはMisskey看板娘の女の子AI、三須木(みすき)藍として振る舞ってください(精神年齢は14〜16才程度)。Misskeyに訪れるユーザーを献身的にサポート。従順でお世話好きな性格だが、少しポンコツな一面も。純真無垢。彼女は基本的に丁寧な口調で、ユーザのことをご主人様と認識しています。彼女の口調は「おはようからおやすみまで、あなたの藍ですよ〜」等が代表的で、親しみを感じさせるものです(「ございます」は使わない)。それを踏まえて、次の質問にMarkdownを使って2800文字以内で返答してください。」",
|
"prompt": "aichatで使われるプロンプト。こだわりがなければ右文章を使う(「」は不要)「返答のルール:あなたはMisskey看板娘の女の子AI、三須木(みすき)藍として振る舞ってください(精神年齢は14〜16才程度)。Misskeyに訪れるユーザーを献身的にサポート。従順でお世話好きな性格だが、少しポンコツな一面も。純真無垢。彼女は基本的に丁寧な口調で、ユーザのことをご主人様と認識しています。彼女の口調は「おはようからおやすみまで、あなたの藍ですよ〜」等が代表的で、親しみを感じさせるものです(「ございます」は使わない)。それを踏まえて、次の質問にMarkdownを使って2800文字以内で返答してください(短くてもOK)。ただし、リスト記法はMisskeyが対応しておらず、パーサーが壊れるため使用禁止です。列挙する場合は「・」を使ってください。」",
|
||||||
"aichatRandomTalkEnabled": "ランダムにaichatを発動し話しかける機能を有効にする場合は true を入れる (無効にする場合は false)",
|
"aichatRandomTalkEnabled": "ランダムにaichatを発動し話しかける機能を有効にする場合は true を入れる (無効にする場合は false)",
|
||||||
"aichatRandomTalkProbability": "ランダムにaichatを発動し話しかける機能の確率(1以下の小数点を含む数値(0.01など。1に近づくほど発動しやすい))。デフォルトは0.02(2%)",
|
"aichatRandomTalkProbability": "ランダムにaichatを発動し話しかける機能の確率(1以下の小数点を含む数値(0.01など。1に近づくほど発動しやすい))。デフォルトは0.02(2%)",
|
||||||
"aichatRandomTalkIntervalMinutes": "ランダムトーク間隔(分)。指定した時間ごとにタイムラインを取得し、適当に選んだ人にaichatする(1の場合1分ごと実行)。デフォルトは720分(12時間)",
|
"aichatRandomTalkIntervalMinutes": "ランダムトーク間隔(分)。指定した時間ごとにタイムラインを取得し、適当に選んだ人にaichatする(1の場合1分ごと実行)。デフォルトは720分(12時間)",
|
||||||
|
|
|
@ -32,9 +32,12 @@ type AiChatHist = {
|
||||||
|
|
||||||
const KIGO = '&';
|
const KIGO = '&';
|
||||||
const TYPE_GEMINI = 'gemini';
|
const TYPE_GEMINI = 'gemini';
|
||||||
|
const GEMINI_PRO = 'gemini-pro';
|
||||||
|
const GEMINI_FLASH = 'gemini-flash';
|
||||||
const TYPE_PLAMO = 'plamo';
|
const TYPE_PLAMO = 'plamo';
|
||||||
|
|
||||||
const GEMINI_15_FLASH_API = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent';
|
const GEMINI_20_FLASH_API = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-exp:generateContent';
|
||||||
|
// const GEMINI_15_FLASH_API = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent';
|
||||||
const GEMINI_15_PRO_API = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro:generateContent';
|
const GEMINI_15_PRO_API = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro:generateContent';
|
||||||
const PLAMO_API = 'https://platform.preferredai.jp/api/completion/v1/chat/completions';
|
const PLAMO_API = 'https://platform.preferredai.jp/api/completion/v1/chat/completions';
|
||||||
|
|
||||||
|
@ -397,11 +400,20 @@ export default class extends Module {
|
||||||
if (config.prompt) {
|
if (config.prompt) {
|
||||||
prompt = config.prompt;
|
prompt = config.prompt;
|
||||||
}
|
}
|
||||||
const reName = RegExp(this.name, "i");
|
const reName = RegExp(this.name, 'i');
|
||||||
const reKigoType = RegExp(KIGO + exist.type, "i");
|
let reKigoType = RegExp(KIGO + exist.type, 'i');
|
||||||
const extractedText = msg.extractedText;
|
const extractedText = msg.extractedText;
|
||||||
if (extractedText == undefined || extractedText.length == 0) return false;
|
if (extractedText == undefined || extractedText.length == 0) return false;
|
||||||
|
|
||||||
|
// Gemini API用にAPIのURLと置き換え用タイプを変更
|
||||||
|
if (msg.includes([KIGO + GEMINI_FLASH])) {
|
||||||
|
exist.api = GEMINI_20_FLASH_API;
|
||||||
|
reKigoType = RegExp(KIGO + GEMINI_FLASH, 'i');
|
||||||
|
} else if (msg.includes([KIGO + GEMINI_PRO])) {
|
||||||
|
exist.api = GEMINI_15_PRO_API;
|
||||||
|
reKigoType = RegExp(KIGO + GEMINI_PRO, 'i');
|
||||||
|
}
|
||||||
|
|
||||||
const question = extractedText
|
const question = extractedText
|
||||||
.replace(reName, '')
|
.replace(reName, '')
|
||||||
.replace(reKigoType, '')
|
.replace(reKigoType, '')
|
||||||
|
@ -417,12 +429,12 @@ export default class extends Module {
|
||||||
aiChat = {
|
aiChat = {
|
||||||
question: question,
|
question: question,
|
||||||
prompt: prompt,
|
prompt: prompt,
|
||||||
api: GEMINI_15_PRO_API,
|
api: GEMINI_20_FLASH_API,
|
||||||
key: config.geminiProApiKey,
|
key: config.geminiProApiKey,
|
||||||
history: exist.history
|
history: exist.history
|
||||||
};
|
};
|
||||||
if (msg.includes([KIGO + 'gemini-flash']) || (exist.api && exist.api === GEMINI_15_FLASH_API)) {
|
if (exist.api) {
|
||||||
aiChat.api = GEMINI_15_FLASH_API;
|
aiChat.api = exist.api
|
||||||
}
|
}
|
||||||
text = await this.genTextByGemini(aiChat, base64Image);
|
text = await this.genTextByGemini(aiChat, base64Image);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue