Views
No views yet
transformers kütüphanesinin apply_chat_template() fonksiyonu ile %100 tam uyumlu olarak çalışacak şekilde tasarlanmıştır.messages dizisini (role, content, tool_calls) ve tools listesini kabul eder.system $\rightarrow$ @SYSTEMuser $\rightarrow$ @PATIENTassistant $\rightarrow$ @PHARMACISTtool $\rightarrow$ @TOOL_RESPONSE@TOOLS bloğu altında ilan eder.@TOOL_CALL formatında formatlar.@TOOL_RESPONSE olarak bağlama ekler.metadata.reference verilerini @REFERENCE bloğuna dönüştürür.metadata.thought verilerini (Chain of Thought) @THOUGHT bloğuna dönüştürür.Chat_Template/
├── chat_template.jinja # PPSF v1.0 / v1.1 Jinja2 şablon dosyası
├── main.py # Jinja2 ve Hugging Face AutoTokenizer test scripti
└── README.md # Proje dokümantasyonupip install jinja2 transformerspython main.pytransformers ile Kullanım1from transformers import AutoTokenizer
2
3# Herhangi bir tokenizer yüklendikten sonra özel şablon atanabilir:
4tokenizer = AutoTokenizer.from_pretrained("gpt2")
5
6with open("chat_template.jinja", "r", encoding="utf-8") as f:
7 tokenizer.chat_template = f.read()
8
9messages = [
10 {"role": "system", "content": "Sen uzman bir eczacı yapay zekâsısın."},
11 {"role": "user", "content": "Boğazım ağrıyor."}
12]
13
14prompt = tokenizer.apply_chat_template(
15 messages,
16 add_generation_prompt=True,
17 tokenize=False
18)
19
20print(prompt)1@FORMAT PPSF/1.0
2
3@SYSTEM
4Sen uzman bir eczacı yapay zekâsısın.
5
6@PATIENT
7Boğazım ağrıyor.
8
9@PHARMACIST1messages = [
2 {"role": "system", "content": "Sen uzman bir eczacı yapay zekâsısın."},
3 {"role": "user", "content": "Parol ne işe yarar?"},
4 {
5 "role": "assistant",
6 "content": None,
7 "tool_calls": [
8 {
9 "function": {
10 "name": "search_drug",
11 "arguments": {"drug": "Parol"}
12 }
13 }
14 ]
15 },
16 {
17 "role": "tool",
18 "content": '{"drug": "Parol", "active_ingredient": "Parasetamol", "usage": "Ağrı kesici ve ateş düşürücü"}'
19 }
20]1@FORMAT PPSF/1.0
2
3@SYSTEM
4Sen uzman bir eczacı yapay zekâsısın.
5
6@PATIENT
7Parol ne işe yarar?
8
9@TOOL_CALL
10{
11 "name": "search_drug",
12 "arguments": {"drug": "Parol"}
13}
14
15@TOOL_RESPONSE
16{"drug": "Parol", "active_ingredient": "Parasetamol", "usage": "Ağrı kesici ve ateş düşürücü"}
17
18@PHARMACISTmessages yapısında thought veya reference rolleri bulunmamaktadır. Bu nedenle PPSF formatında CoT (Düşünce Adımları) ve RAG (Referans Dokümanlar) desteği metadata nesnesi üzerinden sağlanmıştır:1{
2 "role": "user",
3 "content": "Grip için hangi ilacı kullanmalıyım?",
4 "metadata": {
5 "reference": "[Kılavuz Doc #42]: Parasetamol 500mg tercih edilir."
6 }
7}metadata içeriğini otomatik olarak algılar ve @REFERENCE ile @THOUGHT bloklarını sırasıyla bağlama yerleştirir. Bu yaklaşım, ekosistem uyumluluğunu bozmadan formatı genişletilebilir kılar.