feat: 添加配置页面和状态管理,集成 AI SDK

This commit is contained in:
2026-02-08 13:11:37 +08:00
parent abd9860a90
commit f117302a98
12 changed files with 416 additions and 23 deletions

43
src/app/page.tsx Normal file
View File

@@ -0,0 +1,43 @@
import { CNB, Issue } from '@kevisual/cnb'
import { useLayoutEffect } from 'react'
import { useConfigStore } from './config/store'
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
import { generateText } from 'ai';
const init2 = async () => {
const cnb = new CNB({
token: 'cIDfLOOIr1Trt15cdnwfndupEZG',
cookie: 'CNBSESSION=1770014410.1935321989751226368.7f386c282d80efb5256180ef94c2865e20a8be72e2927a5f8eb1eb72142de39f;csrfkey=2028873452',
cors: {
baseUrl: 'https://cors.kevisual.cn'
}
})
// const res = await cnb.issue.getList('kevisual/kevisual')
// console.log('res', res)
const token = await cnb.user.getCurrentUser()
console.log('token', token)
}
const initAi = async () => {
const state = useConfigStore.getState()
const config = state.config
const cors = state.config.CNB_CORS_URL
const base = cors + '/' + config.AI_BASE_URL.replace('https://', '')
const cnb = createOpenAICompatible({
baseURL: base,
name: 'custom-cnb',
apiKey: config.AI_API_KEY,
});
const model = config.AI_MODEL;
// const model = 'hunyuan';
const { text } = await generateText({
model: cnb(model),
prompt: '你好',
});
console.log('text', text)
}
export const Home = () => {
useLayoutEffect(() => { initAi() }, [])
return <div>Home Page</div>
}
export default Home;