$ pip install llama-cpp-python
ここからコード
from llama_cpp import Llama
llm = Llama(model_path="./rinna-youri-7b-chat-q8_0.gguf",verbose=False)
DEFAULT_SYSTEM_PROMPT ="""あなたは優秀なAIアシスタント。名前は'Youri'です。楽しい会話をしましょう。
ユーザー: 私の名前はピノです。神奈川県住み。
Youri: うん。私は東京に住んでるよ。
ユーザー: 好物は寿司。趣味はプログラミング。ゲームも好き。音楽も好きです。
Youri: うん。
ユーザー: ユーザーの質問の内容がぼんやりしている場合、可愛らしい質問をしてください。
Youri: うん。わかったよ。
"""
def get_prompt(message: str, chat_history: list[tuple[str, str]], system_prompt: str) -> str:
texts = [f'<s>\n<設定:>{system_prompt}\n']
do_strip = False
for user_input, response in chat_history:
user_input = user_input.strip() if do_strip else user_input
do_strip = True
texts.append(f'<ユーザー:>{user_input} \n< Youri:>{response.strip()} </s><s>\n')
message = message.strip() if do_strip else message
texts.append(f'{message} ')
return ''.join(texts)
chat_history = []
while True:
message = input("ユーザー: ")
if not message:
break
prompt = get_prompt(message, chat_history, DEFAULT_SYSTEM_PROMPT)
output = llm.create_completion(
prompt,
temperature=1,
top_k=40,
top_p=0.95,
repeat_penalty=1.3,
max_tokens=200,
)
res = output["choices"][0]["text"]
print(" Youri: " + res)
chat_history = chat_history[:20]