Documentation ¶
Index ¶
- Constants
- Variables
- func DisplayWelcomeMessage(multiAddr, ipAddr, publicKeyHex string, isStaked bool, isWriterNode bool, ...)
- func GetCloudflareModels() ([]string, error)
- func ProtocolWithVersion(protocolName string) protocol.ID
- func TopicWithVersion(protocolName string) string
- type AppConfig
- type ModelType
Constants ¶
const ( PrivKeyFile = "MASA_PRIV_KEY_FILE" BootNodes = "BOOTNODES" MasaDir = "MASA_DIR" RpcUrl = "RPC_URL" PortNbr = "PORT_NBR" UDP = "UDP" TCP = "TCP" PrivateKey = "PRIVATE_KEY" StakeAmount = "STAKE_AMOUNT" LogLevel = "LOG_LEVEL" LogFilePath = "LOG_FILEPATH" Environment = "ENV" AllowedPeer = "allowedPeer" Signature = "signature" Debug = "debug" Version = "v0.0.4-beta" FilePath = "FILE_PATH" WriterNode = "WRITER_NODE" CachePath = "CACHE_PATH" MasaPrefix = "/masa" OracleProtocol = "oracle_protocol" NodeDataSyncProtocol = "nodeDataSync" NodeGossipTopic = "gossip" AdTopic = "ad" PublicKeyTopic = "bootNodePublicKey" WorkerTopic = "workerTopic" Rendezvous = "masa-mdns" PageSize = 25 TwitterUsername = "TWITTER_USERNAME" TwitterPassword = "TWITTER_PASSWORD" Twitter2FaCode = "TWITTER_2FA_CODE" DiscordBotToken = "DISCORD_BOT_TOKEN" ClaudeApiKey = "CLAUDE_API_KEY" ClaudeApiURL = "CLAUDE_API_URL" ClaudeApiVersion = "CLAUDE_API_VERSION" GPTApiKey = "OPENAI_API_KEY" TwitterScraper = "TWITTER_SCRAPER" DiscordScraper = "DISCORD_SCRAPER" WebScraper = "WEB_SCRAPER" LlmServer = "LLM_SERVER" LlmChatUrl = "LLM_CHAT_URL" LlmCfUrl = "LLM_CF_URL" )
Variables ¶
var Models = struct { ClaudeOpus, ClaudeOpus20240229, ClaudeSonnet, ClaudeHaiku, GPT4, GPT4o, GPT4Turbo, GPT35Turbo, LLama2, LLama3, Mistral, Gemma, Mixtral, OpenChat, NeuralChat, CloudflareQwen15Chat, CloudflareLlama27bChatFp16, CloudflareLlama38bInstruct, CloudflareMistral7bInstruct, CloudflareMistral7bInstructV01, HuggingFaceGoogleGemma7bIt, HuggingFaceNousresearchHermes2ProMistral7b, HuggingFaceTheblokeLlama213bChatAwq, HuggingFaceTheblokeNeuralChat7bV31Awq, CloudflareOpenchat35_0106, CloudflareMicrosoftPhi2 ModelType }{ ClaudeOpus: ClaudeOpus, ClaudeOpus20240229: ClaudeOpus20240229, ClaudeSonnet: ClaudeSonnet20240229, ClaudeHaiku: ClaudeHaiku20240307, GPT4: GPT4, GPT4o: GPT4o, GPT4Turbo: GPT4TurboPreview, GPT35Turbo: GPT35Turbo, LLama2: LLama2, LLama3: LLama3, Mistral: Mistral, Gemma: Gemma, Mixtral: Mixtral, OpenChat: OpenChat, NeuralChat: NeuralChat, CloudflareQwen15Chat: CloudflareQwen15Chat, CloudflareLlama27bChatFp16: CloudflareLlama27bChatFp16, CloudflareLlama38bInstruct: CloudflareLlama38bInstruct, CloudflareMistral7bInstruct: CloudflareMistral7bInstruct, CloudflareMistral7bInstructV01: CloudflareMistral7bInstructV01, HuggingFaceGoogleGemma7bIt: HuggingFaceGoogleGemma7bIt, HuggingFaceNousresearchHermes2ProMistral7b: HuggingFaceNousresearchHermes2ProMistral7b, HuggingFaceTheblokeLlama213bChatAwq: HuggingFaceTheblokeLlama213bChatAwq, HuggingFaceTheblokeNeuralChat7bV31Awq: HuggingFaceTheblokeNeuralChat7bV31Awq, CloudflareOpenchat35_0106: CloudflareOpenchat35_0106, CloudflareMicrosoftPhi2: CloudflareMicrosoftPhi2, }
Models holds the available models for easy access and iteration.
Functions ¶
func DisplayWelcomeMessage ¶
func GetCloudflareModels ¶
Function to call the Cloudflare API and parse the response
func ProtocolWithVersion ¶
ProtocolWithVersion returns a libp2p protocol ID string with the configured version and environment suffix.
func TopicWithVersion ¶
TopicWithVersion returns a topic string with the configured version and environment suffix.
Types ¶
type AppConfig ¶
type AppConfig struct { PortNbr int `mapstructure:"portNbr"` UDP bool `mapstructure:"udp"` TCP bool `mapstructure:"tcp"` PrivateKey string `mapstructure:"privateKey"` Signature string `mapstructure:"signature"` Bootnodes []string `mapstructure:"bootnodes"` Data string `mapstructure:"data"` StakeAmount string `mapstructure:"stakeAmount"` Debug bool `mapstructure:"debug"` Environment string `mapstructure:"env"` PrivateKeyFile string `mapstructure:"privateKeyFile"` MasaDir string `mapstructure:"masaDir"` RpcUrl string `mapstructure:"rpcUrl"` AllowedPeer bool `mapstructure:"allowedPeer"` AllowedPeerId string `mapstructure:"allowedPeerId"` AllowedPeerPublicKey string `mapstructure:"allowedPeerPublicKey"` LogLevel string `mapstructure:"logLevel"` LogFilePath string `mapstructure:"logFilePath"` FilePath string `mapstructure:"filePath"` WriterNode string `mapstructure:"writerNode"` CachePath string `mapstructure:"cachePath"` // These may be moved to a separate struct TwitterCookiesPath string `mapstructure:"twitterCookiesPath"` TwitterUsername string `mapstructure:"twitterUsername"` TwitterPassword string `mapstructure:"twitterPassword"` Twitter2FaCode string `mapstructure:"twitter2FaCode"` DiscordBotToken string `mapstructure:"discordBotToken"` ClaudeApiKey string `mapstructure:"claudeApiKey"` ClaudeApiURL string `mapstructure:"claudeApiURL"` ClaudeApiVersion string `mapstructure:"claudeApiVersion"` GPTApiKey string `mapstructure:"gptApiKey"` TwitterScraper bool `mapstructure:"twitterScraper"` DiscordScraper bool `mapstructure:"discordScraper"` WebScraper bool `mapstructure:"webScraper"` LlmServer bool `mapstructure:"llmServer"` LLMChatUrl string `mapstructure:"llmChatUrl"` LLMCfUrl string `mapstructure:"llmCfUrl"` }
AppConfig represents the configuration settings for the application. It holds various parameters and settings that control the behavior and runtime environment of the application. The fields in this struct are tagged with `mapstructure` to facilitate configuration loading from various sources such as configuration files, environment variables, and command-line flags using the `viper` library.
func GetInstance ¶
func GetInstance() *AppConfig
GetInstance returns the singleton instance of AppConfig.
If the instance has not been initialized yet, GetInstance will initialize it by: 1. Creating a new AppConfig instance. 2. Setting default configuration values. 3. Overriding defaults with values from environment variables. 4. Overriding defaults and environment variables with values from the configuration file. 5. Overriding all previous values with command-line flags. 6. Unmarshalling the configuration into the AppConfig instance.
If the unmarshalling fails, the instance is set to nil.
Subsequent calls to GetInstance will return the same initialized instance.
func (*AppConfig) HasBootnodes ¶
HasBootnodes checks if the AppConfig has any bootnodes configured. It returns true if there is at least one bootnode in the Bootnodes slice and it is not an empty string. Otherwise, it returns false, indicating that no bootnodes are configured.
func (*AppConfig) LogConfig ¶
func (c *AppConfig) LogConfig()
LogConfig logs the non-sensitive parts of the AppConfig. Adjust the fields being logged according to your application's needs.
func (*AppConfig) SetupLogging ¶
func (c *AppConfig) SetupLogging()
SetupLogging configures the logging output for the application. It creates the log directory if needed, opens the log file, sets up a MultiWriter to log to both stdout and the log file, and configures the log level based on the Config.LogLevel field.
type ModelType ¶
type ModelType string
ModelType defines a type for model strings.
const ( ClaudeOpus ModelType = "claude-3-opus" ClaudeOpus20240229 ModelType = "claude-3-opus-20240229" ClaudeSonnet20240229 ModelType = "claude-3-sonnet-20240229" ClaudeHaiku20240307 ModelType = "claude-3-haiku-20240307" GPT4 ModelType = "gpt-4" GPT4o ModelType = "gpt-4o" GPT4TurboPreview ModelType = "gpt-4-turbo-preview" GPT35Turbo ModelType = "gpt-3.5-turbo" LLama2 ModelType = "ollama/llama2" LLama3 ModelType = "ollama/llama3" Mistral ModelType = "ollama/mistral" Gemma ModelType = "ollama/gemma" Mixtral ModelType = "ollama/mixtral" OpenChat ModelType = "ollama/openchat" NeuralChat ModelType = "ollama/neural-chat" CloudflareQwen15Chat ModelType = "@cf/qwen/qwen1.5-0.5b-chat" CloudflareLlama27bChatFp16 ModelType = "@cf/meta/llama-2-7b-chat-fp16" CloudflareLlama38bInstruct ModelType = "@cf/meta/llama-3-8b-instruct" CloudflareMistral7bInstruct ModelType = "@cf/mistral/mistral-7b-instruct" CloudflareMistral7bInstructV01 ModelType = "@cf/mistral/mistral-7b-instruct-v0.1" HuggingFaceGoogleGemma7bIt ModelType = "@hf/google/gemma-7b-it" HuggingFaceNousresearchHermes2ProMistral7b ModelType = "@hf/nousresearch/hermes-2-pro-mistral-7b" HuggingFaceTheblokeLlama213bChatAwq ModelType = "@hf/thebloke/llama-2-13b-chat-awq" HuggingFaceTheblokeNeuralChat7bV31Awq ModelType = "@hf/thebloke/neural-chat-7b-v3-1-awq" CloudflareOpenchat35_0106 ModelType = "@cf/openchat/openchat-3.5-0106" CloudflareMicrosoftPhi2 ModelType = "@cf/microsoft/phi-2" )
Define model constants.