Documentation
¶
Index ¶
- Constants
- Variables
- func LocalUserPath() string
- type Config
- type DocStoreConfig
- type EmbeddingConfig
- type EmbeddingType
- type GLM6BConfig
- type GeminiConfig
- type HuggingFaceConfig
- type LLMConfig
- type LLMType
- type Loader
- type MeiliConfig
- type OpenAIConfig
- type PostgresConfig
- type TextSpliterConfig
- type VectorStoreConfig
- type VectorStoreType
Constants ¶
View Source
const (
DefaultConfigBase = "friday.conf"
)
Variables ¶
View Source
var FilePath string
Functions ¶
func LocalUserPath ¶
func LocalUserPath() string
Types ¶
type Config ¶
type Config struct { Debug bool `json:"debug,omitempty"` Logger logger.Logger HttpAddr string `json:"httpAddr,omitempty"` PoolNum int `json:"poolNum,omitempty"` // plugins Plugins []string `json:"plugins,omitempty"` // docStore DocStore DocStoreConfig `json:"docStore,omitempty"` // llm limit token LimitToken int `json:"limitToken,omitempty"` // used by summary, split input into mutil sub-docs summaried by llm separately. // openai key OpenAIBaseUrl string `json:"openAiBaseUrl,omitempty"` // if openai is used for embedding or llm, it is needed, default is "https://api.openai.com" OpenAIKey string `json:"openAiKey,omitempty"` // if openai is used for embedding or llm, it is needed // gemini key GeminiBaseUri string `json:"geminiBaseUri,omitempty"` // if gemini is used for embedding or llm, it is needed, default is "https://generativelanguage.googleapis.com" GeminiKey string `json:"geminiKey,omitempty"` // if gemini is used for embedding or llm, it is needed // embedding config EmbeddingConfig EmbeddingConfig `json:"embeddingConfig,omitempty"` // vector store config VectorStoreConfig VectorStoreConfig `json:"vectorStoreConfig,omitempty"` // LLM LLMConfig LLMConfig `json:"llmConfig,omitempty"` // text spliter TextSpliterConfig TextSpliterConfig `json:"textSpliterConfig,omitempty"` }
type DocStoreConfig ¶
type DocStoreConfig struct { Type string `json:"type"` MeiliConfig MeiliConfig `json:"meiliConfig,omitempty"` PostgresConfig PostgresConfig `json:"postgresConfig,omitempty"` }
type EmbeddingConfig ¶
type EmbeddingConfig struct { EmbeddingType EmbeddingType `json:"embeddingType"` OpenAI OpenAIConfig `json:"openai,omitempty"` HuggingFace HuggingFaceConfig `json:"huggingFace,omitempty"` Gemini GeminiConfig `json:"gemini,omitempty"` }
type EmbeddingType ¶
type EmbeddingType string
const ( EmbeddingOpenAI EmbeddingType = "openai" EmbeddingHuggingFace EmbeddingType = "huggingface" EmbeddingGemini EmbeddingType = "gemini" )
type GLM6BConfig ¶
type GLM6BConfig struct {
Url string `json:"url,omitempty"`
}
type GeminiConfig ¶
type HuggingFaceConfig ¶
type LLMConfig ¶
type LLMConfig struct { LLMType LLMType `json:"llmType"` Prompts map[string]string `json:"prompts,omitempty"` OpenAI OpenAIConfig `json:"openai,omitempty"` GLM6B GLM6BConfig `json:"glm6b,omitempty"` Gemini GeminiConfig `json:"gemini,omitempty"` }
type Loader ¶
func NewConfigLoader ¶
func NewConfigLoader() Loader
type MeiliConfig ¶
type MeiliConfig struct { MeiliUrl string `json:"meiliUrl,omitempty"` MasterKey string `json:"masterKey,omitempty"` AdminApiKey string `json:"adminApiKey,omitempty"` SearchApiKey string `json:"searchApiKey,omitempty"` DocIndex string `json:"docIndex,omitempty"` AttrIndex string `json:"attrIndex,omitempty"` }
type OpenAIConfig ¶
type OpenAIConfig struct { QueryPerMinute int `json:"queryPerMinute,omitempty"` // qpm, default is 3 Burst int `json:"burst,omitempty"` // burst, default is 5 Model *string `json:"model,omitempty"` // model of openai, default for llm is "gpt-3.5-turbo"; default for embedding is "text-embedding-ada-002" MaxReturnToken *int `json:"maxReturnToken,omitempty"` // maxReturnToken + VectorStoreConfig.TopK * TextSpliterConfig.SpliterChunkSize <= token limit of llm model FrequencyPenalty *uint `json:"frequencyPenalty,omitempty"` PresencePenalty *uint `json:"presencePenalty,omitempty"` Temperature *float32 `json:"temperature,omitempty"` }
type PostgresConfig ¶
type PostgresConfig struct {
DSN string `json:"dsn,omitempty"`
}
type TextSpliterConfig ¶
type TextSpliterConfig struct { SpliterChunkSize int `json:"spliterChunkSize,omitempty"` // chunk of files splited to store, default is 4000 SpliterChunkOverlap int `json:"spliterChunkOverlap,omitempty"` // overlap of each chunks, default is 200 SpliterSeparator string `json:"spliterSeparator,omitempty"` // separator to split files, default is \n }
type VectorStoreConfig ¶
type VectorStoreConfig struct { VectorStoreType VectorStoreType `json:"vectorStoreType"` VectorUrl string `json:"vectorUrl"` TopK *int `json:"topK,omitempty"` // topk of knn, default is 6 EmbeddingDim int `json:"embeddingDim,omitempty"` // embedding dimension, default is 1536 }
type VectorStoreType ¶
type VectorStoreType string
const ( VectorStoreRedis VectorStoreType = "redis" VectorStorePostgres VectorStoreType = "postgres" VectorStorePGVector VectorStoreType = "pgvector" )
Click to show internal directories.
Click to hide internal directories.