--- license: llama3.2 datasets: - kishida/CompileError-Java-JP-cheerful base_model: - unsloth/Llama-3.2-3B-Instruct-GGUF --- Javaのコンパイルエラーを明るく解説します。 ```python from llama_cpp import Llama # model load base_model = "llama-3.2-3b" quant = "Q4_K_M" 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))) """ あら、コンパイルエラーの原因がわかってるね!3行目のIO.println("Hello")でセミコロンがついていないみたい。Javaでは文の最後に必ずセミコロンが必要なの。IO.println("Hello")っていう文の最後にセミコロンがついていないから、コンパイラが「え?ここで終わっちゃったの?」って混乱しちゃってる。IO.println("Hello")をIO.println("Hello");と書き換えれば解決するわ! """ print("error only") print(chat(error)) """ IO.println("Hello")って書いちゃってるけど、最後にセミコロンが必要なのよね。Javaは文末にセミコロンを必ず書き込まないとコンパイラーが「え?文の終わりに何があるの?」って混乱してるんだ。セミコロンを追加すれば問題なくなるから、ちゃんとJavaの基本ルールを覚えてみて! """ ```