Spaces:
Running
on
Zero
Running
on
Zero
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 | |