mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-05-22 00:50:10 +08:00
### What problem does this PR solve? ``` RAGFlow(user)> chat with 'glm-4.6v-flash@test@zhipu-ai' message 'What are the pics talk about?' image 'https://cdn.bigmodel.cn/static/logo/register.png' 'https://cdn.bigmodel.cn/static/logo/api-key.png' Answer: The first picture shows a login/register modal with options for phone number login, account login, and WeChat QR code login, along with a prompt for new users to get a 20 million tokens experience package. The second picture displays the API keys management page of a platform, including a warning about API key security and a table listing existing API keys with details like creation time and usage history. Time: 31.600545 RAGFlow(user)> chat with 'glm-4.6v-flash@test@zhipu-ai' message 'What are the video talk about?' video 'https://cdn.bigmodel.cn/agent-demos/lark/113123.mov' Answer: Based on the sequence of frames provided, the video is a demonstration of a web search and navigation process. 1. The video starts with a blank Google search page. 2. The user types "智谱" (which is the Chinese name for the company Zhipu AI) into the search box. 3. The search is initiated and the page shows "About 0 results". 4. The search results load, showing information about Zhipu AI, including its website. 5. The user clicks on the main website link (www.zhipuai.cn). 6. The video ends by showing the homepage of Zhipu AI's website, titled "Z.ai GLM Large Model Open Platform". In summary, the video is about searching for the company "智谱" (Zhipu AI) on Google and then navigating to its official website. Time: 76.582520 ``` ### Type of change - [x] New Feature (non-breaking change which adds functionality) Signed-off-by: Jin Hai <haijin.chn@gmail.com>
183 lines
2.9 KiB
Go
183 lines
2.9 KiB
Go
//
|
|
// Copyright 2026 The InfiniFlow Authors. All Rights Reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
//
|
|
|
|
package cli
|
|
|
|
// Command represents a parsed command from the CLI
|
|
type Command struct {
|
|
Type string
|
|
Params map[string]interface{}
|
|
}
|
|
|
|
// Token types for the lexer
|
|
const (
|
|
// Keywords
|
|
TokenLogin = iota
|
|
TokenLogout
|
|
TokenRegister
|
|
TokenList
|
|
TokenServices
|
|
TokenShow
|
|
TokenCreate
|
|
TokenService
|
|
TokenShutdown
|
|
TokenStartup
|
|
TokenRestart
|
|
TokenUsers
|
|
TokenDrop
|
|
TokenUser
|
|
TokenAlter
|
|
TokenActive
|
|
TokenAdmin
|
|
TokenAdd
|
|
TokenDelete
|
|
TokenPassword
|
|
TokenDataset
|
|
TokenDatasets
|
|
TokenDatasetTable
|
|
TokenOf
|
|
TokenAgents
|
|
TokenRole
|
|
TokenRoles
|
|
TokenDescription
|
|
TokenGrant
|
|
TokenRevoke
|
|
TokenAll
|
|
TokenPermission
|
|
TokenTo
|
|
TokenFrom
|
|
TokenFor
|
|
TokenResources
|
|
TokenOn
|
|
TokenSet
|
|
TokenReset
|
|
TokenVersion
|
|
TokenVar
|
|
TokenVars
|
|
TokenConfigs
|
|
TokenEnvs
|
|
TokenKey
|
|
TokenKeys
|
|
TokenGenerate
|
|
TokenAvailable
|
|
TokenSupported
|
|
TokenModel
|
|
TokenModels
|
|
TokenProvider
|
|
TokenProviders
|
|
TokenDefault
|
|
TokenChats
|
|
TokenChat
|
|
TokenMessage
|
|
TokenImage
|
|
TokenVideo
|
|
TokenAudio
|
|
TokenStream
|
|
TokenFiles
|
|
TokenAs
|
|
TokenParse
|
|
TokenImport
|
|
TokenInto
|
|
TokenWith
|
|
TokenParser
|
|
TokenPipeline
|
|
TokenSearch
|
|
TokenCurrent
|
|
TokenVision
|
|
TokenEmbedding
|
|
TokenRerank
|
|
TokenASR
|
|
TokenTTS
|
|
TokenOCR
|
|
TokenAsync
|
|
TokenSync
|
|
TokenBenchmark
|
|
TokenPing
|
|
TokenToken
|
|
TokenTokens
|
|
TokenUnset
|
|
TokenIndex
|
|
TokenVector
|
|
TokenSize
|
|
TokenName // For ALTER PROVIDER <name> NAME <new_name>
|
|
TokenBalance
|
|
TokenInstance
|
|
TokenInstances
|
|
TokenDisable
|
|
TokenEnable
|
|
TokenUse
|
|
TokenCheck
|
|
TokenThink
|
|
TokenEffort
|
|
TokenVerbosity
|
|
TokenNone
|
|
TokenMinimal
|
|
TokenLow
|
|
TokenMedium
|
|
TokenHigh
|
|
TokenMax
|
|
TokenLS
|
|
TokenCat
|
|
TokenInsert
|
|
TokenFile
|
|
TokenMetadata
|
|
TokenTable
|
|
TokenUpdate
|
|
TokenRemove
|
|
TokenChunk
|
|
TokenChunks
|
|
TokenDocument
|
|
TokenTag
|
|
TokenRegion
|
|
TokenURL
|
|
TokenLog
|
|
TokenLevel
|
|
TokenDebug
|
|
TokenInfo
|
|
TokenWarn
|
|
TokenError
|
|
TokenFatal
|
|
TokenPanic
|
|
// Literals
|
|
TokenIdentifier
|
|
TokenQuotedString
|
|
TokenInteger
|
|
TokenFloat
|
|
TokenNumber = TokenInteger // Alias for integer tokens in path parsing (e.g., version numbers like 1.0.0)
|
|
|
|
// Special
|
|
TokenSemicolon
|
|
TokenComma
|
|
TokenSlash
|
|
TokenEOF
|
|
TokenDash
|
|
TokenIllegal
|
|
)
|
|
|
|
// Token represents a lexical token
|
|
type Token struct {
|
|
Type int
|
|
Value string
|
|
}
|
|
|
|
// NewCommand creates a new command with the given type
|
|
func NewCommand(cmdType string) *Command {
|
|
return &Command{
|
|
Type: cmdType,
|
|
Params: make(map[string]interface{}),
|
|
}
|
|
}
|