Skip to content

嵌入模型

ChatLuna 也能聚合和调用各种嵌入模型。

基本用法

使用 chatluna 服务中的 createEmbeddings 方法来创建一个 Embeddings 实例。

typescript
import type {} from "koishi-plugin-chatluna/services/chat";

// platform, model
const model = ctx.chatluna.createEmbeddings("openai", "text-embedding-3-small")

const vector = await model.embedQuery("你好,世界!")

console.log(vector)

返回的模型继承自 Embeddings,并和 LangChain 的其他 API 无缝衔接。

获取可用的模型

在 ChatLuna 中,实际掌握各类模型和平台的是 PlatformService 类。

如果你需要获取当前平台下可用的嵌入模型列表,可以调用 PlatformServicegetAllModels 方法。

typescript
import { ModelType } from 'koishi-plugin-chatluna/llm-core/platform/types'

const models = ctx.chatluna.platform.getAllModels(ModelType.embedding)

ModelType 是一个枚举类型,定义了模型类型。目前支持的模型类型有:

  • llm:大语言模型
  • embedding:嵌入模型
  • all:所有模型

从用户配置中创建

ChatLuna 的主插件中允许用户设置 defaultEmbeddings 配置项,用于指定默认的嵌入模型。

开发者也可以直接使用这个配置项指定的嵌入模型来创建嵌入模型实例。

typescript
import type {} from "koishi-plugin-chatluna/services/chat";
import { parseRawModelName } from 'koishi-plugin-chatluna/llm-core/utils/model'

const [embeddingsPlatform, embeddingsModel] = parseRawModelName(ctx.chatluna.config.defaultEmbeddings)
const embeddings = ctx.chatluna.createEmbeddings(embeddingsPlatform, embeddingsModel)

获取详细模型信息

可参考 大语言模型 中的 获取详细模型信息 部分。

这里不再赘述。

页面历史

在 CC-BY-SA-4.0 许可下发布

布局切换

调整 VitePress 的布局样式,以适配不同的阅读习惯和屏幕环境。

全部展开
使侧边栏和内容区域占据整个屏幕的全部宽度。
全部展开,但侧边栏宽度可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
全部展开,且侧边栏和内容区域宽度均可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
原始宽度
原始的 VitePress 默认布局宽度

页面最大宽度

调整 VitePress 布局中页面的宽度,以适配不同的阅读习惯和屏幕环境。

调整页面最大宽度
一个可调整的滑块,用于选择和自定义页面最大宽度。

内容最大宽度

调整 VitePress 布局中内容区域的宽度,以适配不同的阅读习惯和屏幕环境。

调整内容最大宽度
一个可调整的滑块,用于选择和自定义内容最大宽度。