|
from langchain_community.chat_models import ChatOllama
|
|
from langchain.prompts import ChatPromptTemplate
|
|
from langchain_core.output_parsers import StrOutputParser
|
|
from langchain_core.runnables import RunnablePassthrough
|
|
|
|
def generate_title(message: str) -> str:
|
|
prompt_template = """Generate one concise and descriptive title that is not longer than 3 words. Only generate one that title. Only generate 3 words. No alternatives. No explanation. Generate this title based on the following message:
|
|
Message: {message}
|
|
Title: """
|
|
|
|
prompt = ChatPromptTemplate.from_template(prompt_template)
|
|
|
|
model = ChatOllama(model="mistral")
|
|
|
|
title_chain = (
|
|
{"message": RunnablePassthrough()}
|
|
| prompt
|
|
| model
|
|
| StrOutputParser()
|
|
)
|
|
|
|
result = title_chain.invoke(message)
|
|
return result
|
|
|