TGI station



Назад

idec.talks :: Всем привет!
==========================

subject: Всем привет!
16.03.2026 16:32
Difrex (tgi,44)  
 
Давно меня не было в сети, наверное, с тех пор, как умер сервак мой с нодой.
На неделе подниму ноду. Только эластика скорее всего не будет, или будет в каком-нибудь
другом виде, но точно в интернет прямо торчать не будет. :)

+++ Caesium/0.9
--------------------------------------------------------------------------------

subject: Re: Всем привет!
17.03.2026 02:36
cthulhu (tgi,43) => C4B8YOGm3aWXAbv21vFP  
 
А привет!

Вижу Caesium кому-то не безразличен.

*радуется весь*

Отправил ещё пульреквест со всей фигнёй. Хочу критику и предложений по улучшению.

+++ Caesium/0.9
--------------------------------------------------------------------------------

subject: Re: Всем привет!
17.03.2026 09:07
Difrex (tgi,44) => yB8QOpa54GzXrA7zXQOQ  
 

cthulhu> А привет!
cthulhu> Вижу Caesium кому-то не безразличен.
cthulhu> *радуется весь*
cthulhu> Отправил ещё пульреквест со всей фигнёй. Хочу критику и предложений по улучшению.

На самом деле я не очень люблю Цезий :). Просто написать больше не через что было. idecel нужно
актуализировать под свежий emacsql, а веб интерфейса для постинга на tgi, что-то нет.
ПР смержил, только вот вычитывать 206 коммитов мне реально лень.
Отправил тебе инвайт в idec-net организацию на гитхабе.

+++ Caesium/0.9
--------------------------------------------------------------------------------

subject: Re: Всем привет!
17.03.2026 09:10
Difrex (tgi,44) => Et2XiCfW4xmZwkgzHEJi  
 

cthulhu>> Отправил ещё пульреквест со всей фигнёй. Хочу критику и предложений по улучшению.
Difrex> На самом деле я не очень люблю Цезий :).

А, да, чего бы хотелось: схемы клавишь GNU/Emacs, чтобы всякие C-n C-f и т.д. работали.

+++ Caesium/0.9
--------------------------------------------------------------------------------

subject: Re: Всем привет!
19.03.2026 02:59
cthulhu (tgi,43) => TzMhAEhgzhKNGs8xG5Mh  
 

Difrex> А, да, чего бы хотелось: схемы клавишь GNU/Emacs, чтобы всякие C-n C-f и т.д. работали.

Тэк-с. Немножко поправил работу с клавиатурой. Вроде бы получилось не сильно ужасно. Может быть даже всякие C-n C-f заработают с последовательностями.

Но в пульреквесте `TODO: Emacs keystrokes` это для тебя, потому что я ни разу не емаксер. Там в корне есть `show_key.py` на всякий случай.

P.S.: А Дипсику так и передай, никаким "грасефулли екзит" в его коммите и не пахло.

+++ Caesium/0.9
--------------------------------------------------------------------------------

subject: Re: Всем привет!
19.03.2026 10:38
Difrex (tgi,44) => 3IACxI2BSTTZeLtQmsAN  
 

Difrex>> А, да, чего бы хотелось: схемы клавишь GNU/Emacs, чтобы всякие C-n C-f и т.д. работали.
cthulhu> Тэк-с. Немножко поправил работу с клавиатурой. Вроде бы получилось не сильно ужасно. Может быть даже всякие C-n C-f заработают с последовательностями.
cthulhu> Но в пульреквесте `TODO: Emacs keystrokes` это для тебя, потому что я ни разу не емаксер. Там в корне есть `show_key.py` на всякий случай.

Сегодня постараюсь потыкать.

cthulhu> P.S.: А Дипсику так и передай, никаким "грасефулли екзит" в его коммите и не пахло.

LLM у меня только коммит мессeджи генерит на основе дифа. Там я try except добавил, чтобы нормально с 0 выходило, а не с эксепшоном.
Быстрофикс для себя, потому что мне нравится выходить по C-c. :)

Вот, кстати, код скрипта и кусок Emacs. Пусть будет, может кому еще пригодится.
====
#!/usr/bin/env python3
"""Generate git commit message based on the diff."""

import os
import sys

from ollama import generate
from ollama import GenerateResponse


MODEL = "deepseek-coder:6.7b"
BASE_PROMPT = """You are a Git commit message writer. Generate a commit message based on the provided git diff of staged changes.

**CRITICAL FORMATTING RULES:**
1. Output MUST be exactly in this format:
```
Title here

Multiline description here
on multiple lines
```

2. Title must be in imperative mood (e.g., "Fix bug" not "Fixed bug")
3. Title must not exceed 79 characters
4. Separate title and description with exactly one blank line
5. Do NOT include the diff itself in output
6. Do NOT add any text before or after the commit message
7. Description should explain WHY the change was made, not WHAT changed

**Content Guidelines:**
- Title: Start with verb, be concise, summarize the change
- Description: Explain the purpose, context, and impact
- Keep technical details minimal unless crucial

Now, generate a commit message for these staged changes:

DIFF:
"""


def get_diff() -> str:
"""Return git diff output."""
return os.popen("git diff --staged").read()


if __name__ == "__main__":
diff = get_diff()
if diff == "":
print("Nothing staged")
sys.exit(0)
prompt = f"""{BASE_PROMPT}

{diff}
"""

response: GenerateResponse = generate(model=MODEL, prompt=prompt)

output = ""
for line in response["response"].split("\n"):
if line.startswith("```"):
continue
output += line + "\n"
print(output + f"[NOTE]: Commit message written with LLM ({MODEL}) support.\n")
====

====
(defun difrex/difrex-ai-git-commit-msg (&rest _)
(when (string= (buffer-name) "COMMIT_EDITMSG")
(point-min)
(insert
(shell-command-to-string "git-commit-message.py"))))

(advice-add 'switch-to-buffer :after #'difrex/difrex-ai-git-commit-msg)
====

+++ Caesium/0.9
--------------------------------------------------------------------------------