提示格式

提示格式

根據使用的語言模型不同,使用不同的格式來下指令可以得到更好的結果,akasha目前提供 gpt, llama, chat_gpt, chat_mistral, chat_gemini, auto 等格式
若選擇 auto會根據模型類別來決定提示格式

gpt

1
2
3
4


prompt_format = System: {system_prompt} \n\n {history_messages} \n\n Human: {prompt}

llama

1
2
3
4


prompt_format = [INST] <<SYS>> {system_prompt} \n\n <<SYS>> {history_messages} \n\n {prompt} [\INST]

chat_gpt

1
2
3
4
5
6
7
8
9
10


prompt_format = [{"role":"system", "content": {system_prompt} },
{"role":"user", "content": {history msg1}},
{"role":"assistant", "content": {history msg2}},
.
.
.
{"role":"user", "content": {prompt}}]

chat_mistral

1
2
3
4
5
6
7
8
9
10
11


prompt_format = [{"role":"user", "content": "start conversation" },
{"role":"assistant", "content": {system_prompt}},
{"role":"user", "content": {history msg1}},
{"role":"assistant", "content": {history msg2}},
.
.
.
{"role":"user", "content": {prompt}}]

chat_gemini

1
2
3
4
5
6
7
8
9

prompt_format =[{"role":"model", "parts": [{system_prompt}]},
{"role":"user", "parts": [{history msg1}]},
{"role":"model", "parts": [{history msg2}]},
.
.
.
{"role":"user", "parts": [{prompt}]}]

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import akasha
sys_prompt = "請用中文回答"
prompt = "五軸是甚麼?"
qa = akasha.Doc_QA(
verbose=False,
search_type="svm",
model="openai:gpt-3.5-turbo")

response = qa.get_response(
doc_path="docs/mic/",
prompt=prompt,
prompt_format_type="chat_gpt",
system_prompt=sys_prompt,
)

Example2

1
2
3
4
5
6
7
8
import akasha
sys_prompt = "請用中文回答"
prompt = "五軸是甚麼?"
input_text = akasha.prompts.format_sys_prompt(sys_prompt,prompt,"chat_gpt")
model_obj = akasha.handle_model("openai:gpt-3.5-turbo",False,0.0)

response = akasha.call_model(model_obj, input_text)