259 lines
11 KiB
YAML
259 lines
11 KiB
YAML
---
|
||
# tasks file for matrix-gptbot
|
||
- name: Create Matrix ChatGPT Bot namespace
|
||
k8s:
|
||
state: present
|
||
definition:
|
||
apiVersion: v1
|
||
kind: Namespace
|
||
metadata:
|
||
name: matrix-gptbot
|
||
|
||
- name: Create a Deployment for Matrix ChatGPT Bot
|
||
k8s:
|
||
definition:
|
||
apiVersion: v1
|
||
kind: ConfigMap
|
||
metadata:
|
||
name: config
|
||
namespace: matrix-gptbot
|
||
data:
|
||
config.ini: |
|
||
# Copy this file to config.ini and replace the values below to match your needs
|
||
#
|
||
# The values that are not commented have to be set, everything else comes with
|
||
# sensible defaults.
|
||
###############################################################################
|
||
[GPTBot]
|
||
# Some way for the user to contact you.
|
||
# Ideally, either your personal user ID or a support room
|
||
# If this is your user ID and Debug is 1, any errors that occur when using the script will be reported to you in detail
|
||
#
|
||
Operator = @eric:eom.dev
|
||
# Enable debug mode
|
||
# Will send error tracebacks to you (= Operator above) if an error occurs processing a message from you
|
||
# Defaults to 0 (= off)
|
||
#
|
||
# Debug = 1
|
||
# The default room name used by the !newroom command
|
||
# Defaults to GPTBot if not set
|
||
#
|
||
# DefaultRoomName = GPTBot
|
||
# Contents of a special message sent to the GPT API with every request.
|
||
# Can be used to give the bot some context about the environment it's running in
|
||
#
|
||
# SystemMessage = You are a helpful bot.
|
||
# Force inclusion of the SystemMessage defined above if one is defined on per-room level
|
||
# If no custom message is defined for the room, SystemMessage is always included
|
||
#
|
||
# ForceSystemMessage = 0
|
||
# Path to a custom logo
|
||
# Used as room/space image and profile picture
|
||
# Defaults to logo.png in assets directory
|
||
#
|
||
# Logo = assets/logo.png
|
||
# Display name for the bot
|
||
#
|
||
DisplayName = LocalAI
|
||
# A list of allowed users
|
||
# If not defined, everyone is allowed to use the bot (so you should really define this)
|
||
# Use the "*:homeserver.matrix" syntax to allow everyone on a given homeserver
|
||
# Alternatively, you can also specify a room ID to allow everyone in the room to use the bot within that room
|
||
#
|
||
# AllowedUsers = ["*:matrix.local", "!roomid:matrix.local"]
|
||
# Minimum level of log messages that should be printed
|
||
# Available log levels in ascending order: trace, debug, info, warning, error, critical
|
||
# Defaults to info
|
||
#
|
||
LogLevel = info
|
||
###############################################################################
|
||
[OpenAI]
|
||
# The Chat Completion model you want to use.
|
||
#
|
||
Model = falcon3-3b-instruct
|
||
# The Image Generation model you want to use.
|
||
#
|
||
# ImageModel = dall-e-3
|
||
# Your OpenAI API key
|
||
#
|
||
# Find this in your OpenAI account:
|
||
# https://platform.openai.com/account/api-keys
|
||
#
|
||
# This may not be required for self-hosted models – in that case, just leave it
|
||
# as it is.
|
||
#
|
||
APIKey = {{ localai_api_keys[1] }}
|
||
# The maximum amount of input sent to the API
|
||
#
|
||
# In conjunction with MaxMessage, this determines how much context (= previous
|
||
# messages) you can send with your query.
|
||
#
|
||
# If you set this too high, the responses you receive will become shorter the
|
||
# longer the conversation gets.
|
||
#
|
||
# https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them
|
||
#
|
||
# MaxTokens = 3000
|
||
# The maximum number of messages in the room that will be considered as context
|
||
#
|
||
# By default, the last (up to) 20 messages will be sent as context, in addition
|
||
# to the system message and the current query itself.
|
||
#
|
||
# MaxMessages = 20
|
||
# The base URL of the OpenAI API
|
||
#
|
||
# Setting this allows you to use a self-hosted AI model for chat completions
|
||
# using something like llama-cpp-python or ollama
|
||
#
|
||
BaseURL = https://localai.eom.dev/v1/
|
||
# Whether to force the use of tools in the chat completion model
|
||
#
|
||
# This will make the bot allow the use of tools in the chat completion model,
|
||
# even if the model you are using isn't known to support tools. This is useful
|
||
# if you are using a self-hosted model that supports tools, but the bot doesn't
|
||
# know about it.
|
||
#
|
||
# ForceTools = 1
|
||
# Whether a dedicated model should be used for tools
|
||
#
|
||
# This will make the bot use a dedicated model for tools. This is useful if you
|
||
# want to use a model that doesn't support tools, but still want to be able to
|
||
# use tools.
|
||
#
|
||
# ToolModel = gpt-4o
|
||
# Whether to emulate tools in the chat completion model
|
||
#
|
||
# This will make the bot use the default model to *emulate* tools. This is
|
||
# useful if you want to use a model that doesn't support tools, but still want
|
||
# to be able to use tools. However, this may cause all kinds of weird results.
|
||
#
|
||
# EmulateTools = 0
|
||
# Force vision in the chat completion model
|
||
#
|
||
# By default, the bot only supports image recognition in known vision models.
|
||
# If you set this to 1, the bot will assume that the model you're using supports
|
||
# vision, and will send images to the model as well. This may be required for
|
||
# some self-hosted models.
|
||
#
|
||
# ForceVision = 0
|
||
# Maximum width and height of images sent to the API if vision is enabled
|
||
#
|
||
# The OpenAI API has a limit of 2000 pixels for the long side of an image, and
|
||
# 768 pixels for the short side. You may have to adjust these values if you're
|
||
# using a self-hosted model that has different limits. You can also set these
|
||
# to 0 to disable image resizing.
|
||
#
|
||
# MaxImageLongSide = 2000
|
||
# MaxImageShortSide = 768
|
||
# Whether the used model supports video files as input
|
||
#
|
||
# If you are using a model that supports video files as input, set this to 1.
|
||
# This will make the bot send video files to the model as well as images.
|
||
# This may be possible with some self-hosted models, but is not supported by
|
||
# the OpenAI API at this time.
|
||
#
|
||
# ForceVideoInput = 0
|
||
# Advanced settings for the OpenAI API
|
||
#
|
||
# These settings are not required for normal operation, but can be used to
|
||
# tweak the behavior of the bot.
|
||
#
|
||
# Note: These settings are not validated by the bot, so make sure they are
|
||
# correct before setting them, or the bot may not work as expected.
|
||
#
|
||
# For more information, see the OpenAI documentation:
|
||
# https://platform.openai.com/docs/api-reference/chat/create
|
||
#
|
||
# Temperature = 1
|
||
# TopP = 1
|
||
# FrequencyPenalty = 0
|
||
# PresencePenalty = 0
|
||
###############################################################################
|
||
[WolframAlpha]
|
||
# An API key for Wolfram|Alpha
|
||
# Request one at https://developer.wolframalpha.com
|
||
#
|
||
# Leave unset to disable Wolfram|Alpha integration (`!gptbot calculate`)
|
||
#
|
||
#APIKey = YOUR-APIKEY
|
||
###############################################################################
|
||
[Matrix]
|
||
# The URL to your Matrix homeserver
|
||
#
|
||
# If you are using Pantalaimon, this should be the URL of your Pantalaimon
|
||
# instance, not the Matrix homeserver itself.
|
||
#
|
||
Homeserver = https://synapse.eom.dev/
|
||
# An Access Token for the user your bot runs as
|
||
#
|
||
# See https://www.matrix.org/docs/guides/client-server-api#login
|
||
# for information on how to obtain this value
|
||
#
|
||
# AccessToken = syt_yoursynapsetoken
|
||
# Instead of an Access Token, you can also use a User ID and password
|
||
# to log in. Upon first run, the bot will automatically turn this into
|
||
# an Access Token and store it in the config file, and remove the
|
||
# password from the config file.
|
||
#
|
||
# This is particularly useful if you are using Pantalaimon, where this
|
||
# is the only (easy) way to generate an Access Token.
|
||
#
|
||
UserID = @localai:eom.dev
|
||
Password = {{ localai_admin_password }}
|
||
###############################################################################
|
||
[Database]
|
||
# Path of the main database
|
||
# Used to "remember" settings, etc.
|
||
#
|
||
Path = database.db
|
||
###############################################################################
|
||
[TrackingMore]
|
||
# API key for TrackingMore
|
||
# If not defined, the bot will not be able to provide parcel tracking
|
||
#
|
||
# APIKey = abcde-fghij-klmnop
|
||
###############################################################################
|
||
[OpenWeatherMap]
|
||
# API key for OpenWeatherMap
|
||
# If not defined, the bot will be unable to provide weather information
|
||
#
|
||
# APIKey = __________________________
|
||
###############################################################################
|
||
|
||
- name: Create a Deployment for Matrix ChatGPT Bot
|
||
k8s:
|
||
definition:
|
||
apiVersion: v1
|
||
kind: Deployment
|
||
metadata:
|
||
name: matrix-gptbot
|
||
namespace: matrix-gptbot
|
||
spec:
|
||
replicas: 1
|
||
selector:
|
||
matchLabels:
|
||
app: matrix-gptbot
|
||
template:
|
||
metadata:
|
||
labels:
|
||
app: matrix-gptbot
|
||
spec:
|
||
containers:
|
||
- name: matrix-gptbot
|
||
image: ericomeehan/matrix-gptbot
|
||
command:
|
||
- python
|
||
args:
|
||
- "-m"
|
||
- gptbot
|
||
- "-c"
|
||
- /config/config.ini
|
||
volumeMounts:
|
||
- name: config
|
||
mountPath: /config
|
||
volumes:
|
||
- name: config
|
||
configMap:
|
||
name: config
|
||
|