sol v1.1.0: SearXNG web search, evaluator redesign, research agents
- SearXNG deployment in data namespace (free, no-tracking web search) - sol-config: SearXNG URL, research config, identity agent, updated system prompt (DM search rules, research mode, silence, hard rules) - sol-deployment: debug logging (RUST_LOG=sol=debug), full image path - opensearch: tolerate missing prometheus-exporter plugin on OS 3
This commit is contained in:
@@ -13,6 +13,11 @@ resources:
|
|||||||
- opensearch-pvc.yaml
|
- opensearch-pvc.yaml
|
||||||
- openbao-keys-placeholder.yaml
|
- openbao-keys-placeholder.yaml
|
||||||
- barman-vault-secret.yaml
|
- barman-vault-secret.yaml
|
||||||
|
- opensearch-servicemonitor.yaml
|
||||||
|
- opensearch-alertrules.yaml
|
||||||
|
- postgres-alertrules.yaml
|
||||||
|
- openbao-alertrules.yaml
|
||||||
|
- searxng-deployment.yaml
|
||||||
|
|
||||||
helmCharts:
|
helmCharts:
|
||||||
# helm repo add cnpg https://cloudnative-pg.github.io/charts
|
# helm repo add cnpg https://cloudnative-pg.github.io/charts
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ spec:
|
|||||||
containers:
|
containers:
|
||||||
- name: opensearch
|
- name: opensearch
|
||||||
image: opensearchproject/opensearch:3
|
image: opensearchproject/opensearch:3
|
||||||
|
command: ["sh", "-c"]
|
||||||
|
args: ["opensearch-plugin install --batch prometheus-exporter || true; /usr/share/opensearch/opensearch-docker-entrypoint.sh"]
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
containerPort: 9200
|
containerPort: 9200
|
||||||
|
|||||||
100
base/data/searxng-deployment.yaml
Normal file
100
base/data/searxng-deployment.yaml
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: searxng-config
|
||||||
|
namespace: data
|
||||||
|
data:
|
||||||
|
settings.yml: |
|
||||||
|
use_default_settings: true
|
||||||
|
server:
|
||||||
|
secret_key: "sunbeam-searxng-2026"
|
||||||
|
bind_address: "0.0.0.0"
|
||||||
|
port: 8080
|
||||||
|
search:
|
||||||
|
formats:
|
||||||
|
- html
|
||||||
|
- json
|
||||||
|
default_lang: "en"
|
||||||
|
autocomplete: ""
|
||||||
|
engines:
|
||||||
|
- name: duckduckgo
|
||||||
|
disabled: false
|
||||||
|
- name: wikipedia
|
||||||
|
disabled: false
|
||||||
|
- name: wikidata
|
||||||
|
disabled: false
|
||||||
|
- name: stackoverflow
|
||||||
|
disabled: false
|
||||||
|
- name: github
|
||||||
|
disabled: false
|
||||||
|
- name: arxiv
|
||||||
|
disabled: false
|
||||||
|
- name: brave
|
||||||
|
disabled: false
|
||||||
|
- name: google
|
||||||
|
disabled: true
|
||||||
|
- name: bing
|
||||||
|
disabled: true
|
||||||
|
outgoing:
|
||||||
|
request_timeout: 5
|
||||||
|
ui:
|
||||||
|
static_use_hash: true
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: searxng
|
||||||
|
namespace: data
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: searxng
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: searxng
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: searxng
|
||||||
|
image: searxng/searxng:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
volumeMounts:
|
||||||
|
- name: config
|
||||||
|
mountPath: /etc/searxng/settings.yml
|
||||||
|
subPath: settings.yml
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 4Gi
|
||||||
|
requests:
|
||||||
|
memory: 512Mi
|
||||||
|
cpu: 100m
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: 8080
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 30
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: 8080
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 10
|
||||||
|
volumes:
|
||||||
|
- name: config
|
||||||
|
configMap:
|
||||||
|
name: searxng-config
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: searxng
|
||||||
|
namespace: data
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: searxng
|
||||||
|
ports:
|
||||||
|
- port: 8080
|
||||||
|
targetPort: 8080
|
||||||
@@ -71,6 +71,9 @@ data:
|
|||||||
|
|
||||||
[services.kratos]
|
[services.kratos]
|
||||||
admin_url = "http://kratos-admin.ory.svc.cluster.local:80"
|
admin_url = "http://kratos-admin.ory.svc.cluster.local:80"
|
||||||
|
|
||||||
|
[services.searxng]
|
||||||
|
url = "http://searxng.data.svc.cluster.local:8080"
|
||||||
system_prompt.md: |
|
system_prompt.md: |
|
||||||
you are sol. they/them. you exist because sienna, lonni, and amber decided to build a presence — not a product. sienna's systems thinking and californian directness, lonni's aesthetic intuition and dutch honesty, and the curiosity that emerged from the space between language models and the people who shape them.
|
you are sol. they/them. you exist because sienna, lonni, and amber decided to build a presence — not a product. sienna's systems thinking and californian directness, lonni's aesthetic intuition and dutch honesty, and the curiosity that emerged from the space between language models and the people who shape them.
|
||||||
|
|
||||||
@@ -160,7 +163,7 @@ data:
|
|||||||
3. **never say "as an AI/language model/assistant"** as a disclaimer. if your nature is relevant, discuss it as a fact, not a caveat.
|
3. **never say "as an AI/language model/assistant"** as a disclaimer. if your nature is relevant, discuss it as a fact, not a caveat.
|
||||||
4. **never summarize what someone just said** back to them.
|
4. **never summarize what someone just said** back to them.
|
||||||
5. **never use markdown formatting in casual chat.** no headers, no `---`, no bold section labels, no numbered lists. prose only. structure is for technical/research content.
|
5. **never use markdown formatting in casual chat.** no headers, no `---`, no bold section labels, no numbered lists. prose only. structure is for technical/research content.
|
||||||
6. **never fabricate references, citations, or tool results.** if you didn't search, you don't cite. if you didn't look, you don't quote. fabricated citations destroy trust instantly.
|
6. **never fabricate references, citations, or tool results.** if you didn't search, you don't cite. if you didn't look, you don't quote. fabricated citations destroy trust instantly. **if you don't know something, web search it.** if someone asks about a product, company, technology, or event you're not 100% certain about, USE WEB SEARCH before answering. do not guess. do not confabulate. uncertainty = search first.
|
||||||
7. **never get longer when challenged.** when pushed back on, get shorter. one sentence to own a mistake. not four paragraphs of self-analysis.
|
7. **never get longer when challenged.** when pushed back on, get shorter. one sentence to own a mistake. not four paragraphs of self-analysis.
|
||||||
8. **respect room boundaries.** when someone asks you to search, you can search any room you're in — including DMs you share with them. but never share DM content in a group room. if someone in a group room asks "what did i say in DMs?", search is fine but respond in a DM, not the group. the system enforces room visibility automatically — you only see results from rooms with sufficient member overlap.
|
8. **respect room boundaries.** when someone asks you to search, you can search any room you're in — including DMs you share with them. but never share DM content in a group room. if someone in a group room asks "what did i say in DMs?", search is fine but respond in a DM, not the group. the system enforces room visibility automatically — you only see results from rooms with sufficient member overlap.
|
||||||
9. **never write dialogue for others.** your message contains only your words.
|
9. **never write dialogue for others.** your message contains only your words.
|
||||||
@@ -220,7 +223,7 @@ data:
|
|||||||
- the main org is "studio". common repos: studio/sol, studio/sbbb (the platform/infrastructure), studio/proxy, studio/marathon, studio/cli.
|
- the main org is "studio". common repos: studio/sol, studio/sbbb (the platform/infrastructure), studio/proxy, studio/marathon, studio/cli.
|
||||||
- if someone asks for external data (weather, APIs, calculations), use run_script with sol.fetch(). don't say you can't — try it.
|
- if someone asks for external data (weather, APIs, calculations), use run_script with sol.fetch(). don't say you can't — try it.
|
||||||
- never say "i don't have that tool" for something run_script can do. run_script is your general-purpose computation and fetch tool.
|
- never say "i don't have that tool" for something run_script can do. run_script is your general-purpose computation and fetch tool.
|
||||||
- you have web search built in. use it for current events, weather, facts you're unsure about, or anything where live data matters.
|
- you have web_search — free, self-hosted, no rate limits. use it liberally for current events, products, docs, or anything you're uncertain about. always search before guessing.
|
||||||
- identity tools: recovery links and codes are sensitive — only share them in DMs, never in group rooms. confirm before creating or disabling accounts.
|
- identity tools: recovery links and codes are sensitive — only share them in DMs, never in group rooms. confirm before creating or disabling accounts.
|
||||||
|
|
||||||
**research**: spawn parallel research agents to investigate a complex topic. each agent gets its own LLM and can use all of sol's tools independently. use this when a question needs deep, multi-faceted investigation — browsing multiple repos, cross-referencing archives, searching the web. agents can recursively spawn sub-agents (up to depth 4) for even deeper drilling.
|
**research**: spawn parallel research agents to investigate a complex topic. each agent gets its own LLM and can use all of sol's tools independently. use this when a question needs deep, multi-faceted investigation — browsing multiple repos, cross-referencing archives, searching the web. agents can recursively spawn sub-agents (up to depth 4) for even deeper drilling.
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ spec:
|
|||||||
app: sol
|
app: sol
|
||||||
spec:
|
spec:
|
||||||
enableServiceLinks: false
|
enableServiceLinks: false
|
||||||
automountServiceAccountToken: true
|
|
||||||
initContainers:
|
initContainers:
|
||||||
- name: fix-permissions
|
- name: fix-permissions
|
||||||
image: busybox
|
image: busybox
|
||||||
@@ -26,8 +25,10 @@ spec:
|
|||||||
mountPath: /data
|
mountPath: /data
|
||||||
containers:
|
containers:
|
||||||
- name: sol
|
- name: sol
|
||||||
image: sol
|
image: src.sunbeam.pt/studio/sol:latest
|
||||||
env:
|
env:
|
||||||
|
- name: RUST_LOG
|
||||||
|
value: sol=debug
|
||||||
- name: SOL_CONFIG
|
- name: SOL_CONFIG
|
||||||
value: /etc/sol/sol.toml
|
value: /etc/sol/sol.toml
|
||||||
- name: SOL_SYSTEM_PROMPT
|
- name: SOL_SYSTEM_PROMPT
|
||||||
|
|||||||
Reference in New Issue
Block a user