File size: 2,349 Bytes
f120063
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
const { getLatestModels } = require('../models/models-map.js')
const config = require('../config/index.js')

const handleGetModels = async (req, res) => {
    const models = []

    const ModelsMap = await getLatestModels()

    for (const model of ModelsMap) {
        delete model.name
        models.push(model)

        if (config.simpleModelMap) {
            continue
        }

        const isThinking = model?.info?.meta?.abilities?.thinking
        const isSearch = model?.info?.meta?.chat_type?.includes('search')
        const isImage = model?.info?.meta?.chat_type?.includes('t2i')
        const isVideo = model?.info?.meta?.chat_type?.includes('t2v')
        const isImageEdit = model?.info?.meta?.chat_type?.includes('image_edit')
        const isDeepResearch = model?.info?.meta?.chat_type?.includes('deep_research')

        if (isThinking) {
            const newModelData = JSON.parse(JSON.stringify(model))
            newModelData.id = `${model.id}-thinking`

            models.push(newModelData)
        }

        if (isSearch) {
            const newModelData = JSON.parse(JSON.stringify(model))
            newModelData.id = `${model.id}-search`
            models.push(newModelData)
        }

        if (isThinking && isSearch) {
            const newModelData = JSON.parse(JSON.stringify(model))
            newModelData.id = `${model.id}-thinking-search`
            models.push(newModelData)
        }

        if (isImage) {
            const newModelData = JSON.parse(JSON.stringify(model))
            newModelData.id = `${model.id}-image`
            models.push(newModelData)
        }

        if (isVideo) {
            const newModelData = JSON.parse(JSON.stringify(model))
            newModelData.id = `${model.id}-video`
            models.push(newModelData)
        }

        if (isImageEdit) {
            const newModelData = JSON.parse(JSON.stringify(model))
            newModelData.id = `${model.id}-image-edit`
            models.push(newModelData)
        }

        // if (isDeepResearch) {
        //     const newModelData = JSON.parse(JSON.stringify(model))
        //     newModelData.id = `${model.id}-deep-research`
        //     models.push(newModelData)
        // }
    }
    res.json({
        "object": "list",
        "data": models
    })
}

module.exports = {
    handleGetModels
}