cocopilot
This commit is contained in:
parent
e00474109d
commit
322b0781ac
5
.vscode/settings.json
vendored
5
.vscode/settings.json
vendored
@ -5,6 +5,9 @@
|
|||||||
"file:///home/coder/helm-starred/hass/influxdb/deployment.yaml"
|
"file:///home/coder/helm-starred/hass/influxdb/deployment.yaml"
|
||||||
],
|
],
|
||||||
"https://json.schemastore.org/helmfile.json": "file:///home/coder/helm-starred/matrix/values.yaml",
|
"https://json.schemastore.org/helmfile.json": "file:///home/coder/helm-starred/matrix/values.yaml",
|
||||||
"https://json.schemastore.org/chart.json": "file:///home/coder/helm-starred/matrix/dendrite/Chart.yaml"
|
"https://json.schemastore.org/chart.json": [
|
||||||
|
"file:///home/coder/helm-starred/matrix/dendrite/Chart.yaml",
|
||||||
|
"file:///home/coder/helm-starred/cocopilot/Chart.yaml"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
6
cocopilot/Chart.yaml
Normal file
6
cocopilot/Chart.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
apiVersion: v2
|
||||||
|
name: cocopilot
|
||||||
|
description: Cocopilot is a shim for AI apis
|
||||||
|
type: application
|
||||||
|
version: 0.1.0
|
||||||
|
appVersion: "v0.0.7"
|
29
cocopilot/templates/configmap.yaml
Normal file
29
cocopilot/templates/configmap.yaml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: {{ include "cocopilot.fullname" . | printf "%s-cocopilot"}}
|
||||||
|
labels:
|
||||||
|
app: {{ include "cocopilot.fullname" . | printf "%s-cocopilot"}}
|
||||||
|
{{- include "cocopilot.labels" . | nindent 4 }}
|
||||||
|
data:
|
||||||
|
config.json: |-
|
||||||
|
{
|
||||||
|
"bind": {{ include "cocopilot.config.bind" . | quote }},
|
||||||
|
"proxy_url": {{ .Values.config.proxyUrl | quote }},
|
||||||
|
"timeout": {{ .Values.config.timeout }},
|
||||||
|
"codex_api_base": {{ .Values.config.codex.apiBase | quote }},
|
||||||
|
"codex_api_key": "",
|
||||||
|
"codex_api_organization": {{ .Values.config.codex.organization | quote }},
|
||||||
|
"codex_api_project": {{ .Values.config.codex.project | quote }},
|
||||||
|
"codex_max_tokens": 500,
|
||||||
|
"code_instruct_model": {{ .Values.config.codex.model | quote }},
|
||||||
|
"chat_api_base": {{ .Values.config.chat.apiBase | quote }},
|
||||||
|
"chat_api_key": "",
|
||||||
|
"chat_api_organization": {{ .Values.config.chat.organization | quote }},
|
||||||
|
"chat_api_project": {{ .Values.config.chat.project | quote }},
|
||||||
|
"chat_max_tokens": {{ .Values.config.chat.maxTokens }},
|
||||||
|
"chat_model_default": {{ .Values.config.chat.model | quote }},
|
||||||
|
"chat_model_map": {{ .Values.config.chat.modelMap | toJson }},
|
||||||
|
"chat_locale": {{ .Values.config.chat.locale | quote }},
|
||||||
|
"auth_token": ""
|
||||||
|
}
|
52
cocopilot/templates/deployment.yaml
Normal file
52
cocopilot/templates/deployment.yaml
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: {{ include "cocopilot.fullname" . | printf "%s-cocopilot"}}
|
||||||
|
labels:
|
||||||
|
app: {{ include "cocopilot.fullname" . | printf "%s-cocopilot"}}
|
||||||
|
{{- include "cocopilot.labels" . | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: {{ include "cocopilot.fullname" . | printf "%s-cocopilot"}}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: {{ include "cocopilot.fullname" . | printf "%s-cocopilot"}}
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: {{ include "cocopilot.fullname" . | printf "%s-cocopilot"}}
|
||||||
|
image: {{ include "cocopilot.image" . | quote}}
|
||||||
|
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||||
|
{{- if .Values.resources }}
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.resources | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
|
ports:
|
||||||
|
- containerPort: {{ .Values.config.port }}
|
||||||
|
name: svc
|
||||||
|
env:
|
||||||
|
- name: OVERRIDE_CODEX_API_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: {{ include "cocopilot.fullname" . | printf "%s-cocopilot"}}
|
||||||
|
key: password
|
||||||
|
- name: OVERRIDE_CHAT_API_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: {{ include "cocopilot.fullname" . | printf "%s-cocopilot"}}
|
||||||
|
key: password
|
||||||
|
{{- if .Values.env }}
|
||||||
|
{{- toYaml .Values.env | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
volumeMounts:
|
||||||
|
- name: config
|
||||||
|
mountPath: /app/config.json
|
||||||
|
subPath: config.json
|
||||||
|
volumes:
|
||||||
|
- name: config
|
||||||
|
configMap:
|
||||||
|
name: {{ include "cocopilot.fullname" . | printf "%s-cocopilot"}}
|
||||||
|
items:
|
||||||
|
- key: config.json
|
||||||
|
path: config.json
|
63
cocopilot/templates/helper.tpl
Normal file
63
cocopilot/templates/helper.tpl
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
{{/*
|
||||||
|
Expand the name of the chart.
|
||||||
|
*/}}
|
||||||
|
{{- define "cocopilot.name" -}}
|
||||||
|
{{- .Values.nameOverride | default .Chart.Name | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create a default fully qualified app name.
|
||||||
|
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||||
|
If release name contains chart name it will be used as a full name.
|
||||||
|
*/}}
|
||||||
|
{{- define "cocopilot.fullname" -}}
|
||||||
|
{{- if .Values.fullnameOverride }}
|
||||||
|
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- else }}
|
||||||
|
{{- $name := default .Chart.Name .Values.nameOverride }}
|
||||||
|
{{- if contains $name .Release.Name }}
|
||||||
|
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- else }}
|
||||||
|
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create chart name and version as used by the chart label.
|
||||||
|
*/}}
|
||||||
|
{{- define "cocopilot.chart" -}}
|
||||||
|
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Common labels
|
||||||
|
*/}}
|
||||||
|
{{- define "cocopilot.labels" -}}
|
||||||
|
helm.sh/chart: {{ include "cocopilot.chart" . }}
|
||||||
|
{{ include "cocopilot.selectorLabels" . }}
|
||||||
|
{{- if .Chart.AppVersion }}
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||||
|
{{- end }}
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Selector labels
|
||||||
|
*/}}
|
||||||
|
{{- define "cocopilot.selectorLabels" -}}
|
||||||
|
app.kubernetes.io/name: {{ include "cocopilot.name" . }}
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- define "cocopilot.image" -}}
|
||||||
|
{{- include "cocopilot.image.tag" . | printf "%s/%s:%s" .Values.image.registry .Values.image.repository -}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- define "cocopilot.image.tag" -}}
|
||||||
|
{{ .Values.image.tag | default .Chart.AppVersion }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- define "cocopilot.config.bind" -}}
|
||||||
|
{{- .Values.config.port | int | printf "%s:%d" .Values.config.listen -}}
|
||||||
|
{{- end }}
|
10
cocopilot/templates/secret.yaml
Normal file
10
cocopilot/templates/secret.yaml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: {{ include "cocopilot.fullname" . | printf "%s-cocopilot"}}
|
||||||
|
labels:
|
||||||
|
app: {{ include "cocopilot.fullname" . | printf "%s-cocopilot"}}
|
||||||
|
{{- include "cocopilot.labels" . | nindent 4 }}
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
password: {{ .Values.config.secretKey | b64enc }}
|
18
cocopilot/templates/service.yaml
Normal file
18
cocopilot/templates/service.yaml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ include "cocopilot.fullname" . | printf "%s-cocopilot"}}
|
||||||
|
labels:
|
||||||
|
app: {{ include "cocopilot.fullname" . | printf "%s-cocopilot"}}
|
||||||
|
{{- include "cocopilot.labels" . | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: {{ include "cocopilot.fullname" . | printf "%s-cocopilot"}}
|
||||||
|
ports:
|
||||||
|
- port: {{.Values.service.port}}
|
||||||
|
targetPort: svc
|
||||||
|
ipFamilyPolicy: PreferDualStack
|
||||||
|
ipFamilies:
|
||||||
|
- IPv4
|
||||||
|
- IPv6
|
||||||
|
type: {{ .Values.service.type }}
|
38
cocopilot/values.yaml
Normal file
38
cocopilot/values.yaml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
fullnameOverride: ""
|
||||||
|
nameOverride: ""
|
||||||
|
image:
|
||||||
|
registry: "ghcr.io"
|
||||||
|
repository: "senseab/ai-shim"
|
||||||
|
tag: ""
|
||||||
|
pullPolicy: "IfNotPresent"
|
||||||
|
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 500m
|
||||||
|
memory: 512Mi
|
||||||
|
|
||||||
|
service:
|
||||||
|
type: ClusterIP
|
||||||
|
port: 8181
|
||||||
|
|
||||||
|
config:
|
||||||
|
listen: "[::]"
|
||||||
|
port: 8181
|
||||||
|
secretKey: "sk-5001283573a645c6801964e2886c6fc4"
|
||||||
|
proxyUrl: ""
|
||||||
|
timeout: 600
|
||||||
|
codex:
|
||||||
|
apiBase: "https://api.deepseek.com/beta/v1"
|
||||||
|
organization: ""
|
||||||
|
project: ""
|
||||||
|
model: "deepseek-coder"
|
||||||
|
chat:
|
||||||
|
model: "deepseek-coder"
|
||||||
|
locale: "zh_CN"
|
||||||
|
maxTokens: 4096
|
||||||
|
modelMap: {}
|
||||||
|
apiBase: "https://api.deepseek.com/v1"
|
||||||
|
organization: ""
|
||||||
|
project: ""
|
||||||
|
|
||||||
|
env: []
|
Loading…
Reference in New Issue
Block a user