feat(llm): 调用LLM模型修改
All checks were successful
Egg Server MIflow / build-image (push) Successful in 49s

This commit is contained in:
zhaoyingbo 2024-09-26 07:33:21 +00:00
parent c7adc6f76b
commit 8221494651
5 changed files with 30 additions and 23 deletions

BIN
bun.lockb

Binary file not shown.

View File

@ -39,6 +39,7 @@
"@egg/logger": "^1.4.3",
"@egg/net-tool": "^1.6.5",
"@egg/path-tool": "^1.4.1",
"@langchain/core": "^0.3.3",
"@langchain/openai": "^0.3.2",
"joi": "^17.13.3",
"langfuse-langchain": "^3.26.0",

View File

@ -25,7 +25,6 @@ export const manageBotReq = async (ctx: Context.Data): Promise<Response> => {
// 处理Event消息
if (getIsEventMsg(body)) manageEventMsg(ctx)
// 处理Action消息
if (getIsActionMsg(body)) manageActionMsg(ctx)

View File

@ -1,13 +1,10 @@
import { Langfuse } from "langfuse-langchain"
import llm, { LlmPromptType } from "../utils/llm"
const langfuseParams = {
publicKey: "pk-lf-7328c2f1-595a-4023-994b-78762d3dde9e",
secretKey: "sk-lf-bdf20cd5-ff2c-45c3-9021-8292dbb1bef3",
baseUrl: "https://langfuse.yingbo.im:333",
}
const res = await llm.invokeLLM4ChatHistory(
LlmPromptType.summary,
`
[{"body":{"content":"{"text":"1"}"},"chat_id":"oc_8c789ce8f4ecc6695bb63ca6ec4c61ea","create_time":"1727172145642","deleted":false,"message_id":"om_efafd5da2a6307056779a81ca7ab7007","msg_type":"text","sender":{"id":"ou_470ac13b8b50fc472d9d8ee71e03de26","id_type":"open_id","sender_type":"user","tenant_key":"2ee61fe50f4f1657"},"update_time":"1727172145642","updated":false},{"body":{"content":"{"title":"🍳使 ","elements":[[{"tag":"text","text":"ChatIdoc_8c789ce8f4ecc6695bb63ca6ec4c61ea"}],[{"tag":"text","text":""},{"tag":"text","text":"n"},{"tag":"text","text":"/id"},{"tag":"text","text":" chat_idn"},{"tag":"text","text":"/ci"},{"tag":"text","text":" 线n"},{"tag":"text","text":"share "},{"tag":"text","text":" 使AI总结您的分享并收录到飞书表格中n示例share https://lacus.site 嘤博的古早博客欢迎来看hhh"}],[{"tag":"hr"}],[{"tag":"note","elements":[{"tag":"img","image_key":"img_v2_19db22c1-0030-434b-9b54-2a53b99c5f3l"},{"tag":"text","text":"有问题请及时联系zhaoyingbo"}]}]]}"},"chat_id":"oc_8c789ce8f4ecc6695bb63ca6ec4c61ea","create_time":"1727172146339","deleted":false,"message_id":"om_c9d14a9f1280f923143f39c42c504c41","msg_type":"interactive","sender":{"id":"cli_a1eff35b43b89063","id_type":"app_id","sender_type":"app","tenant_key":"2ee61fe50f4f1657"},"update_time":"1727172146339","updated":false},{"body":{"content":"{"text":"1"}"},"chat_id":"oc_8c789ce8f4ecc6695bb63ca6ec4c61ea","create_time":"1727173483485","deleted":false,"message_id":"om_1371a30b8e9a221624a8972154341f2b","msg_type":"text","sender":{"id":"ou_470ac13b8b50fc472d9d8ee71e03de26","id_type":"open_id","sender_type":"user","tenant_key":"2ee61fe50f4f1657"},"update_time":"1727173483485","updated":false},{"body":{"content":"{"text":"/group"}"},"chat_id":"oc_8c789ce8f4ecc6695bb63ca6ec4c61ea","create_time":"1727173655427","deleted":false,"message_id":"om_1f90551b63f5b4b3c50125fbf3b1a972","msg_type":"text","sender":{"id":"ou_470ac13b8b50fc472d9d8ee71e03de26","id_type":"open_id","sender_type":"user","tenant_key":"2ee61fe50f4f1657"},"update_time":"1727173655427","updated":false},{"body":{"content":"{"text":"/group"}"},"chat_id":"oc_8c789ce8f4ecc6695bb63ca6ec4c61ea","create_time":"1727173663085","deleted":false,"message_id":"om_5df8767493047efbc4f4b480befc6a3f","msg_type":"text","sender":{"id":"ou_470ac13b8b50fc472d9d8ee71e03de26","id_type":"open_id","sender_type":"user","tenant_key":"2ee61fe50f4f1657"},"update_time":"1727173663085","updated":false},{"body":{"content":"{"text":"/group"}"},"chat_id":"oc_8c789ce8f4ecc6695bb63ca6ec4c61ea","create_time":"1727173673613","deleted":false,"message_id":"om_8ec0d495ea499ac262c8ce43fc382600","msg_type":"text","sender":{"id":"ou_470ac13b8b50fc472d9d8ee71e03de26","id_type":"open_id","sender_type":"user","tenant_key":"2ee61fe50f4f1657"},"update_time":"1727173673613","updated":false},{"body":{"content":"{"text":"/group"}"},"chat_id":"oc_8c789ce8f4ecc6695bb63ca6ec4c61ea","create_time":"1727173681855","deleted":false,"message_id":"om_5f1363e4e0bc2fa2f055e3e4234010a0","msg_type":"text","sender":{"id":"ou_470ac13b8b50fc472d9d8ee71e03de26","id_type":"open_id","sender_type":"user","tenant_key":"2ee61fe50f4f1657"},"update_time":"1727173681855","updated":false},{"body":{"content":"{"text":"/group"}"},"chat_id":"oc_8c789ce8f4ecc6695bb63ca6ec4c61ea","create_time":"1727173691490","deleted":false,"message_id":"om_c219de6f1c51793be785f5da1623c560","msg_type":"text","sender":{"id":"ou_470ac13b8b50fc472d9d8ee71e03de26","id_type":"open_id","sender_type":"user","tenant_key":"2ee61fe50f4f1657"},"update_time":"1727173691490","updated":false},{"body":{"content":"{"text":"/group"}"},"chat_id":"oc_8c789ce8f4ecc6695bb63ca6ec4c61ea","create_time":"1727173696926","deleted":false,"message_id":"om_191fadbddae7e56ce5d6d659b3ce965b","msg_type":"text","sender":{"id":"ou_470ac13b8b50fc472d9d8ee71e03de26","id_type":"open_id","sender_type":"user","tenant_key":"2ee61fe50f4f1657"},"update_time":"1727173696926","updated":false}]
`
)
const langfuse = new Langfuse(langfuseParams)
const prompt = await langfuse.getPrompt("summary")
console.log(prompt)
console.log(res)

View File

@ -1,3 +1,4 @@
import { PromptTemplate } from "@langchain/core/prompts"
import { ChatOpenAI } from "@langchain/openai"
import { CallbackHandler, Langfuse } from "langfuse-langchain"
import { z } from "zod"
@ -71,19 +72,28 @@ const invokeLLM4ChatHistory = async (
promptType: LlmPromptType,
chatHistory: string
) => {
const { langfuseHandler, langfuse } = await getLangfuse()
const { langfuse, langfuseHandler } = await getLangfuse()
const prompt = await langfuse.getPrompt(promptType)
const compiled_prompt = prompt.compile({
chatHistory,
time: new Date().toLocaleString("zh-CN", { timeZone: "Asia/Shanghai" }),
const langchainTextPrompt = PromptTemplate.fromTemplate(
prompt.getLangchainPrompt()
).withConfig({
metadata: { langfusePrompt: prompt },
})
const model = await getDeepseekModel(0.5)
const { content } = (await model.invoke(compiled_prompt, {
callbacks: [langfuseHandler],
})) as {
content: string
}
return content
const chain = langchainTextPrompt.pipe(await getDeepseekModel(0.5))
const res = await chain.invoke(
{
chatHistory,
time: new Date().toLocaleString("zh-CN", { timeZone: "Asia/Shanghai" }),
},
{
callbacks: [langfuseHandler],
}
)
return res.content
}
const llm = {