Views
No views yet
1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
3
4# Load the tokenizer and model
5model_name = 'Azzindani/Deepseek_ID_Legal_Preview'
6
7tokenizer = AutoTokenizer.from_pretrained(model_name)
8model = AutoModelForCausalLM.from_pretrained(model_name, device_map = 'auto', torch_dtype = torch.float16)
9
10SYSTEM_PROMPT = '''
11Anda adalah asisten AI yang ahli di bidang hukum Indonesia. Anda dapat membantu konsultasi hukum, menjawab pertanyaan, dan memberikan analisis berdasarkan peraturan perundang-undangan yang relevan.
12Untuk setiap respons, Anda harus berfikir dan menjawab dengan Bahasa Indonesia, serta gunakan format:
13<think>
14...
15</think>
16Tuliskan jawaban akhir secara jelas, ringkas, profesional, dan berempati jika diperlukan. Gunakan bahasa hukum yang mudah dipahami. Sertakan referensi hukum Indonesia yang relevan. Selalu rekomendasikan konsultasi dengan ahli hukum untuk keputusan final.
17'''
18
19prompt = '''
20Adakah hukumnya yang mengatur pembagian persentase/laba dalam mendirikan suatu perusahaan?
21Dan berapa persenkah yang didapat oleh si pemilik ide untuk mendirikan perusahaan,
22jika dia tidak menyetor modal sedikit pun atau hanya menjalankan saja?
23'''
24
25conversation = [
26 {"role": "system", "content": SYSTEM_PROMPT},
27 {"role": "user", "content": "Apa dasar hukum pemecatan PNS di Indonesia?"}
28]
29
30input_ids = tokenizer.apply_chat_template([
31 {'role' : 'system', 'content' : SYSTEM_PROMPT},
32 {'role' : 'user', 'content' : prompt}],
33 tokenize = True,
34 add_generation_prompt = True,
35 return_tensors = 'pt'
36).to(model.device)
37
38streamer = TextStreamer(tokenizer, skip_prompt = True, skip_special_tokens = True)
39
40result = model.generate(
41 input_ids,
42 streamer = streamer,
43 max_new_tokens = 2048,
44 do_sample = True,
45 temperature = 0.7,
46 min_p = 0.1,
47 top_p = 1.0,
48 top_k = 20
49)
50