File size: 1,939 Bytes
56e3a95
 
 
 
 
 
 
 
1448259
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
---
license: apache-2.0
datasets:
- kishida/CompileError-Java-JP-cheerful
language:
- ja
base_model:
- unsloth/Ministral-3-3B-Instruct-2512
---

Javaのコンパイルエラーを明るく解説します。  
まだ壊れています。

```python
from llama_cpp import Llama

# model load
base_model = "ministral3-3b"
quant = "Q8_0"
llm = Llama.from_pretrained(
	repo_id=f"kishida/java-error-explainer-jp-cheerful-{base_model}",
	filename=f"java-error-explainer-jp-cheerful-{base_model}.{quant}.gguf",
    seed=1234,
)

# streaming
def chat(msg):
    res = llm.create_chat_completion(
        messages=[
            {"role": "system", "content": "You are a Java compile error explainer."},
            {"role": "user", "content": msg},
        ],
        temperature=0.7,
    )
    return res["choices"][0]["message"]["content"]

source = """
void main() {
    IO.println(LocalDateTime.now());
    IO.println("Hello")
}
"""

error = """
HelloWithError.java:3: エラー: ';'がありません
    IO.println("Hello")
                       ^
エラー1個
"""

template = """
source:
{}

compile error:
{}
"""

print("source + error")
print(chat(template.format(source, error)))
"""
おっと、コードの行末にセミンカンのないからエラーになっちゃったね!Javaでは命令や文を終える時には「;」とせんせんなんか。この行のセミンは欠けてるから、コンパイダーさんが「;」って言ってるんだよ!行末にセニトンの付き忘れが大いな事!
"""

print("error only")
print(chat(error))
"""
おっと、コードの行末にセミンカンのないからエラーになっちゃったね!Javaでは命令や文を終える時には「;」とせんせんなんか。この行のセミンは欠けてるから、コンパイダーさんが「;」って言ってるんだよ!行末にセニトンの付き忘れが大いな事!
"""

# 壊れてる?
```