kenken999's picture
fda
0f43f8a
raw
history blame
2.88 kB
import os
from langchain.chains import LLMChain
from langchain_core.prompts import (
ChatPromptTemplate,
HumanMessagePromptTemplate,
MessagesPlaceholder,
)
from langchain_core.messages import SystemMessage
from langchain.chains.conversation.memory import ConversationBufferWindowMemory
from langchain_groq import ChatGroq
from groq import Groq
def test_prompt(prompt,question):
client = Groq(api_key=os.getenv("api_key"))
completion = client.chat.completions.create(
model="llama3-8b-8192",
messages=[
{
"role": "system",
"content": prompt+" 毎回日本語で答える事"
},
{
"role": "user",
"content": question
},
],
temperature=1,
max_tokens=1024,
top_p=1,
stream=False,
stop=None,
)
print(completion.choices[0].message)
return completion.choices[0].message.content
def prompt_genalate(word,sys_prompt="あなたはプロンプト作成の優秀なアシスタントです。答えは日本語で答えます"):
# Get Groq API key
groq_api_key = os.getenv("api_key")
groq_chat = ChatGroq(groq_api_key=groq_api_key, model_name="llama3-70b-8192")
system_prompt = sys_prompt
conversational_memory_length = 50
memory = ConversationBufferWindowMemory(
k=conversational_memory_length, memory_key="chat_history", return_messages=True
)
#while True:
user_question = word#input("質問を入力してください: ")
#if user_question.lower() == "exit":
# print("Goodbye!")
# break
if user_question:
# Construct a chat prompt template using various components
prompt = ChatPromptTemplate.from_messages(
[
# 毎回必ず含まれるSystemプロンプトを追加
SystemMessage(content=system_prompt),
# ConversationBufferWindowMemoryをプロンプトに追加
MessagesPlaceholder(variable_name="chat_history"),
# ユーザーの入力をプロンプトに追加
HumanMessagePromptTemplate.from_template("{human_input}"),
]
)
# プロンプトを文字列としてフォーマット
#formatted_prompt = prompt.format(chat_history=memory.load_memory_variables(), human_input=user_question)
#print("Formatted Prompt:\n", formatted_prompt)
conversation = LLMChain(
llm=groq_chat,
prompt=prompt,
verbose=False,
memory=memory,
)
response = conversation.predict(human_input=user_question)
print("User: ", user_question)
print("Assistant:", response)
return user_question,user_question+"\r\n[役割]\r\n"+response