Skocz do zawartości

goose ai / aider


SeeM

Rekomendowane odpowiedzi

Hej. Ostrzegam, że będzie trudne.

Próbuję swoich sił ze sztuczną, ale to nie takie proste. To znaczy to jest proste, dopóki trzeba tylko zainstalować Ollamę. 

Sytuacja się komplikuje, kiedy chcę coś więcej, niż pojedynczy czat.

Rozpisałem sobie Dockerfile dla Goose AI, ale mam duży problem z bezdotykową konfigurację tego cuda. Chcę ominąć wbudowany mechanizm

goose configure

i zrobić wszystko zmiennymi środowiskowymi. Chyba jestem już blisko. Pobrałem i rozpakowałem binarkę "goose" do katalogu z plikiem Dockerfile.

from quay.io/fedora/fedora@sha256:dde4f63cf8b0f57ffb62fe16b32ced482d17a9a0ea97f8f532caf387a108afc2

USER 0
ADD goose /usr/local/bin

RUN useradd -u 3030 gooseai -s /usr/bin/bash -d /home/gooseai
RUN chown -R 3030:0 /home/gooseai
RUN chown root:3030 /usr/local/bin/goose
RUN chmod 750 /usr/local/bin/goose

USER 3030
RUN mkdir /home/gooseai/workspace
WORKDIR /home/gooseai/workspace

ENV GOOSE_CONTEXT_LIMIT=200000
ENV GOOSE_INPUT_LIMIT=32000
ENV GOOSE_PLANNER_CONTEXT_LIMIT=1000000
ENV GOOSE_MAX_TOOL_RESPONSE_SIZE=200000

ENV GOOSE_SHELL="/usr/bin/bash"
ENV GOOSE_CLI_THEME="dark"
ENV GOOSE_CLI_DARK_THEME="zenburn"
ENV GOOSE_CLI_SHOW_THINKING="Enabled"
ENV GOOSE_RANDOM_THINKING_MESSAGES="false"
ENV GOOSE_MAX_CODE_BLOCK_LINES=9999
ENV GOOSE_TELEMETRY_ENABLED="false"

ENV GOOSE_PROVIDER="ollama"
ENV OLLAMA_HOST="http://nazwa.hosta:11434"
ENV GOOSE_MODEL="gemma4:12b"

CMD /usr/local/bin/goose session --name gemma

Wynik jest taki:

$ podman build -t gsgemma .
STEP 1/25: FROM quay.io/fedora/fedora@sha256:dde4f63cf8b0f57ffb62fe16b32ced482d17a9a0ea97f8f532caf387a108afc2
STEP 2/25: USER 0
[...]
Successfully tagged localhost/gsgemma:latest 
7e45a3dbe9e42a80b4ae5ffce411031ccaf72d3eb2de55ec1e7f0cfeeb6fef39

$ mkdir pulpit
$ podman unshare chown 3030:0 pulpit
$ podman unshare chmod 770 pulpit

$ podman run --rm --name=gsgemmaaa --volume ./pulpit/:/home/gooseai/workspace:rw,Z gsgemma

    __( O)>  ● new session · ollama gemma4:12b
   \____)    20260712_1 · /home/gooseai/workspace
     L L     goose is ready
  ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ 0% 0/200k

  ● session closed · 20260712_1

Ta sesja od razu się zamyka i nie ma możliwości zrobienia czegokolwiek. 

Szukam możliwości uruchomienia Goose z kontenera, żeby nie miało to dostępu do całego mojego katalogu domowego. Ma ktoś pomysł, jak uruchomić pustą sesję w Goose AI bez konieczności ręcznego przegryzania się przez "goose configure"? Oficjalna dokumentacja tak to właśnie proponuje: https://goose-docs.ai/docs/tutorials/goose-in-docker/#usage , ale to jest super słabe, żeby włazić interaktywnie do kontenera, który może być (i w tym wypadku będzie, z powodu parametru --rm) natychmiast usunięty po jego zamknięciu.

Odnośnik do komentarza
Udostępnij na innych stronach

Okazało się, że jestem gupi. (-:

podman run --rm --name=gsgemmaaa --volume ./pulpit/:/home/gooseai/workspace:rw,Z gsgemma
podman run -it --rm --name=gsgemmaaa --volume ./pulpit/:/home/gooseai/workspace:rw,Z gsgemma

Zapomniałem włączyć trybu interaktywnego.

-----------------------------------------------------------------------------

Tymczasem powalczyłem jeszcze trochę i zrobiłem też Dockerfile dla Aider AI. 

$ cat requirements.txt
aider-chat==0.86.2
aiohappyeyeballs==2.6.1
aiohttp==3.13.3 
aiosignal==1.4.0
annotated-doc==0.0.4
annotated-types==0.7.0
anyio==4.12.1 
asgiref==3.11.1 
attrs==25.4.0        
backoff==2.2.1
beautifulsoup4==4.14.3
certifi==2026.1.4
cffi==2.0.0     
charset-normalizer==3.4.4
click==8.3.1                
ConfigArgParse==1.7.1
diff-match-patch==20241021
diskcache==5.6.3   
distro==1.9.0   
fastapi==0.128.8
fastuuid==0.14.0
filelock==3.20.3
flake8==7.3.0
frozenlist==1.8.0 
fsspec==2026.2.0
gitdb==4.0.12
GitPython==3.1.46
grep-ast==0.9.0
h11==0.16.0   
hf-xet==1.2.0     
httpcore==1.0.9  
httpx==0.28.1   
huggingface_hub==1.4.1
idna==3.11      
importlib_metadata==7.2.1
importlib_resources==6.5.2
Jinja2==3.1.6      
jiter==0.13.0              
json5==0.13.0                        
jsonschema==4.26.0               
jsonschema-specifications==2025.9.1
litellm==1.81.10
markdown-it-py==4.0.0
MarkupSafe==3.0.3       
mccabe==0.7.0            
mdurl==0.1.2  
mixpanel==5.0.0  
mslex==1.3.0  
multidict==6.7.1
networkx==3.4.2
numpy==1.26.4
openai==2.20.0
orjson==3.11.7
oslex==0.1.3
packaging==26.0
pathspec==1.0.4
pexpect==4.9.0
pillow==12.1.1
posthog==7.8.6
prompt_toolkit==3.0.52
propcache==0.4.1
psutil==7.2.2
ptyprocess==0.7.0
pycodestyle==2.14.0
pycparser==3.0
pydantic==2.12.5
pydantic_core==2.41.5
pydub==0.25.1
pyflakes==3.4.0
Pygments==2.19.2
pypandoc==1.16.2
pyperclip==1.11.0
python-dateutil==2.9.0.post0
python-dotenv==1.2.1
PyYAML==6.0.3
referencing==0.37.0
regex==2026.1.15
requests==2.32.5
rich==14.3.2
rpds-py==0.30.0
scipy==1.15.3
shellingham==1.5.4
shtab==1.8.0
six==1.17.0
smmap==5.0.2
sniffio==1.3.1
socksio==1.0.0
sounddevice==0.5.5
soundfile==0.13.1
soupsieve==2.8.3
starlette==0.52.1
tiktoken==0.12.0
tokenizers==0.22.2
tqdm==4.67.3
tree-sitter==0.25.2
tree-sitter-c-sharp==0.23.1
tree-sitter-embedded-template==0.25.0
tree-sitter-language-pack==0.13.0
tree-sitter-yaml==0.7.2
typer==0.23.0
typer-slim==0.23.0
typing-inspection==0.4.2
typing_extensions==4.15.0
urllib3==2.6.3
watchfiles==1.1.1
wcwidth==0.6.0
yarl==1.22.0
zipp==3.23.0


$ cat Dockerfile 
from registry.redhat.io/rhel10/python-312-minimal@sha256:c0717a2e8da811f7100b00ed59d6997fa7d3178b95039ac805d414e783a15641

USER 0
RUN pip install --upgrade "pip==26.1.2"
ADD requirements.txt /tmp/
RUN pip install --requirement /tmp/requirements.txt
RUN rm -f /tmp/requirements.txt
RUN mkdir -p /opt/aider_ai
RUN chown -R 1001:0 /opt/aider_ai

USER 1001
ENV AIDER_GIT=false
ENV AIDER_DARK_MODE=true
ENV OLLAMA_API_BASE=http://nazwa.hosta:11434/
ENV AIDER_ANALYTICS_DISABLE=true
ENV AIDER_CHECK_UPDATE=false
ENV AIDER_SHOW_RELEASE_NOTES=false
ENV OLLAMA_MODEL=qwen3.5:9b
WORKDIR /opt/aider_ai

CMD aider --model=ollama_chat/${OLLAMA_MODEL}

Przed zbudowaniem obrazu trzeba się zalogowować kontem na redhat.com , bo Red Hat inaczej nie wpuści do swojego rejestru. Możecie pewnie użyć dowolnego obrazu zawierającego Pythona 3.12 i przerobić trochę Dockerfile, ponieważ na nowszym Aider nie działa.

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • SeeM changed the title to goose ai / aider

Zrobiłem jeszcze jeden obraz, tym razem zawierający Git.

from quay.io/centos/centos@sha256:f964a3791678e692fcb4beacc5ea2c47fac78e4d4f62ca693833fb3a81fa20ea

USER 0
RUN dnf --assumeyes install python3 python3-pip python3-devel git

RUN useradd -u 1001 aideruser
RUN usermod -L aideruser
RUN mkdir -p /opt/aider_ai
RUN chown -R 1001:0 /opt/aider_ai

USER 1001
WORKDIR /opt/aider_ai

RUN pip install --upgrade "pip==26.1.2"
ADD requirements.txt /tmp/
RUN pip install --requirement /tmp/requirements.txt

RUN git config --global user.name "AIDER SI"
RUN git config --global user.email "aideruser@localhost"

ENV PATH="${PATH}:/home/aideruser/.local/bin"
ENV AIDER_GIT=true
ENV AIDER_DARK_MODE=true
ENV OLLAMA_API_BASE=http://adres-ip-hosta-z-ollama:11434/
ENV AIDER_ANALYTICS_DISABLE=true
ENV AIDER_CHECK_UPDATE=false
ENV AIDER_SHOW_RELEASE_NOTES=false
ENV AIDER_YES_ALWAYS=true
ENV OLLAMA_MODEL=qwen3.5:9b

CMD aider --model=ollama_chat/${OLLAMA_MODEL}

Nie trzeba się już nigdzie logować, bo bazuję na CentOS-ie.

Uruchomienie:

podman build -t aideraigit .

mkdir pulpit
podman unshare chown 1001:0 pulpit
podman unshare chmod 770 pulpit

podman run --rm -it --env OLLAMA_MODEL='qwen3.5:9b' --name=aider_alfa --volume ./pulpit/:/opt/aider_ai:rw,Z aideraigit

OIlama może być zainstalowana i słuchać na porcie 11434 gdziekolwiek w internecie, czy sieci lokalnej, czy nawet lokalnym hoście.

Sztuczka Git polega na tym, że Aider będzie wypychał commit do repozytorium i dodawał do niego stosowny komentarz. A jeżeli zmiany w kodzie wyliczone przez model nie przypadną nam do gustu, można użyć makra /undo w Aider, żeby Git odwinął zmianę i cofnął kod o jeden commit. Wówczas dużo wygodniej się z Aiderem pracuje. 

Wadą jest wielkość tego obrazu. Żeby to wszystko zadziałało, spuchł w porównaniu do poprzedniego znacząco:

localhost/aideraigit                          latest      16dea5281d2c  15 minutes ago  1.25 GB
localhost/aiderai                             latest      73fef671ad53  3 days ago      829 MB

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...