mirror of
https://github.com/kolbytn/mindcraft.git
synced 2025-08-01 12:55:32 +02:00
Resolve merge conflicts with latest code
This commit is contained in:
parent
11c63cb418
commit
1835d5e541
2 changed files with 26 additions and 2 deletions
|
@ -4,12 +4,12 @@
|
||||||
"model": {
|
"model": {
|
||||||
"api": "qwen",
|
"api": "qwen",
|
||||||
"url": "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation",
|
"url": "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation",
|
||||||
"model": "qwen-max"
|
"model": "qwen-plus"
|
||||||
},
|
},
|
||||||
|
|
||||||
"embedding": {
|
"embedding": {
|
||||||
"api": "qwen",
|
"api": "qwen",
|
||||||
"url": "https://dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding",
|
"url": "https://dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding",
|
||||||
"model": "text-embedding-v2"
|
"model": "text-embedding-v3"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -15,6 +15,7 @@ import { GroqCloudAPI } from '../models/groq.js';
|
||||||
import { HuggingFace } from '../models/huggingface.js';
|
import { HuggingFace } from '../models/huggingface.js';
|
||||||
import { Qwen } from "../models/qwen.js";
|
import { Qwen } from "../models/qwen.js";
|
||||||
import { Grok } from "../models/grok.js";
|
import { Grok } from "../models/grok.js";
|
||||||
|
import {cosineSimilarity} from "../utils/math.js";
|
||||||
|
|
||||||
export class Prompter {
|
export class Prompter {
|
||||||
constructor(agent, fp) {
|
constructor(agent, fp) {
|
||||||
|
@ -163,7 +164,30 @@ export class Prompter {
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
async getRelevantSkillDocs(message, select_num) {
|
||||||
|
let latest_message_embedding = '';
|
||||||
|
if(message) //message is not empty, get the relevant skill docs, else return all skill docs
|
||||||
|
latest_message_embedding = await this.embedding_model.embed(message);
|
||||||
|
|
||||||
|
let skill_doc_similarities = Object.keys(this.skill_docs_embeddings)
|
||||||
|
.map(doc_key => ({
|
||||||
|
doc_key,
|
||||||
|
similarity_score: cosineSimilarity(latest_message_embedding, this.skill_docs_embeddings[doc_key])
|
||||||
|
}))
|
||||||
|
.sort((a, b) => b.similarity_score - a.similarity_score);
|
||||||
|
|
||||||
|
let length = skill_doc_similarities.length;
|
||||||
|
if (typeof select_num !== 'number' || isNaN(select_num) || select_num < 0) {
|
||||||
|
select_num = length;
|
||||||
|
} else {
|
||||||
|
select_num = Math.min(Math.floor(select_num), length);
|
||||||
|
}
|
||||||
|
let selected_docs = skill_doc_similarities.slice(0, select_num);
|
||||||
|
let relevant_skill_docs = '#### RELEVENT DOCS INFO ###\nThe following functions are listed in descending order of relevance.\n';
|
||||||
|
relevant_skill_docs += 'SkillDocs:\n'
|
||||||
|
relevant_skill_docs += selected_docs.map(doc => `${doc.doc_key}`).join('\n### ');
|
||||||
|
return relevant_skill_docs;
|
||||||
|
}
|
||||||
async replaceStrings(prompt, messages, examples=null, to_summarize=[], last_goals=null) {
|
async replaceStrings(prompt, messages, examples=null, to_summarize=[], last_goals=null) {
|
||||||
prompt = prompt.replaceAll('$NAME', this.agent.name);
|
prompt = prompt.replaceAll('$NAME', this.agent.name);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue