使用 ChatGPT
new LinwitDocEditor({
element: "#aiEditor",
ai: {
models: {
openai: {
apiKey:"sk-alQ96zbDn*****",
model: 'gpt-4o-mini'
} as OpenaiModelConfig
}
},
})
或者星火大模型
new LinwitDocEditor({
element: "#aiEditor",
ai:{
models:{
spark:{
appId:"****",
apiKey:"****",
apiSecret:"****",
version:"v3.5" //支持 v2.1 v3.1 v3.5 v4.0
}
},
bubblePanelEnable: true,
bubblePanelModel: "auto",
bubblePanelIcon: "<svg .....>",
bubblePanelMenus: [],
onCreateClientUrl: "...."
},
})
openai, spark, wenxin, custom,具体参考:这里spark: 星火大模型配置,星火大模型支持配置的内容如下:
protocol?: string,
appId: string,
apiKey?: string,
apiSecret?: string,
version?: string,
protocol:通信协议,支持 ws 和 wss。
appId:应用 ID。
apiKey:api Key。
apiSecret:api 秘钥。
version: 版本,默认为 v3.5 支持 v2.1、 3.1、 3.5。
在使用 LinwitDocEditor 中,如果是用于内部用户,我们可以通过前端配置模型的 appId、apiKey、apiSecret ,这是没问题的。
但是,LinwitDocEditor 给普通互联网用户使用,则不应该把 appId、apiKey、apiSecret 配置在前端,而是通过后端服务对 Ai 请求路径进行签名,
需要自定义配置 onCreateClientUrl 才能保证秘钥安全。
示例代码如下:
new LinwitDocEditor({
element: "#aiEditor",
ai:{
models:{
spark:{
appId: "****",
}
},
onCreateClientUrl: (modelName, modelConfig, startFn)=>{
//通过后端获取到 签名 url 后,执行 startFn 并传入 url。
fetch("/your-path/getUrl?appId="+modelConfig.appId)
.then(resp=>resp.json)
.then(json=> {
startFn(json.url)
})
},
onTokenConsume(_, __, count) {
axios.post("/api/v1/resource/doTokenCounting", {
count
})
}
},
})
示例代码如下:
new LinwitDocEditor({
element: "#aiEditor",
ai: {
models: {
spark: {
appId: "****",
}
},
onTokenConsume(modelName, modelConfig, count) {
//当有 token 消耗时,会回调此方法
axios.post("/api/v1/resource/doTokenCounting", {
count
})
}
},
})