Views
No views yet
1from llama_cpp import Llama
2
3# model load
4base_model = "llama-3.2-3b"
5quant = "Q4_K_M"
6llm = Llama.from_pretrained(
7 repo_id=f"kishida/java-error-explainer-jp-cheerful-{base_model}",
8 filename=f"java-error-explainer-jp-cheerful-{base_model}.{quant}.gguf",
9 seed=1234,
10)
11
12# streaming
13def chat(msg):
14 res = llm.create_chat_completion(
15 messages=[
16 {"role": "system", "content": "You are a Java compile error explainer."},
17 {"role": "user", "content": msg},
18 ],
19 temperature=0.7,
20 )
21 return res["choices"][0]["message"]["content"]
22
23source = """
24void main() {
25 IO.println(LocalDateTime.now());
26 IO.println("Hello")
27}
28"""
29
30error = """
31HelloWithError.java:3: エラー: ';'がありません
32 IO.println("Hello")
33 ^
34エラー1個
35"""
36
37template = """
38source:
39{}
40
41compile error:
42{}
43"""
44
45print("source + error")
46print(chat(template.format(source, error)))
47"""
48あら、コンパイルエラーの原因がわかってるね!3行目のIO.println("Hello")でセミコロンがついていないみたい。Javaでは文の最後に必ずセミコロンが必要なの。IO.println("Hello")っていう文の最後にセミコロンがついていないから、コンパイラが「え?ここで終わっちゃったの?」って混乱しちゃってる。IO.println("Hello")をIO.println("Hello");と書き換えれば解決するわ!
49"""
50
51print("error only")
52print(chat(error))
53"""
54IO.println("Hello")って書いちゃってるけど、最後にセミコロンが必要なのよね。Javaは文末にセミコロンを必ず書き込まないとコンパイラーが「え?文の終わりに何があるの?」って混乱してるんだ。セミコロンを追加すれば問題なくなるから、ちゃんとJavaの基本ルールを覚えてみて!
55"""