Spaces:
Sleeping
Sleeping
from langchain_huggingface import HuggingFaceEndpoint | |
from langchain_core.prompts import PromptTemplate | |
from langchain_core.output_parsers import StrOutputParser | |
import json | |
from dotenv import load_dotenv | |
import os | |
load_dotenv() | |
HF_API_TOKEN = os.getenv('HUGGINGFACE_API_TOKEN') | |
model_id=os.getenv('LLM_MODEL') | |
LLM = HuggingFaceEndpoint( | |
repo_id=model_id, | |
temperature=0.1, | |
max_new_tokens=512, | |
repetition_penalty=1.2, | |
return_full_text=False, | |
huggingfacehub_api_token=HF_API_TOKEN) | |
def generate_keywords(document:dict, | |
llm_model:HuggingFaceEndpoint = LLM) -> str: | |
""" Generate a meaningful list of meta keywords for the provided document or chunk""" | |
template = ( | |
""" | |
You are a SEO expert bot. Your task is to craft a meaningful list of 5 keywords to organize documents. | |
The keywords should help us in searching and retrieving the documents later. | |
You will only respond with the clear, concise and meaningful 5 of keywords separated by comma. | |
<<< | |
Document: {document} | |
>>> | |
Keywords: | |
""" | |
) | |
prompt = PromptTemplate.from_template(template=template) | |
chain = prompt | llm_model | StrOutputParser() | |
result = chain.invoke({'document': document}) | |
return result.strip() | |
def generate_description(document:dict, | |
llm_model:HuggingFaceEndpoint = LLM) -> str: | |
""" Generate a meaningful document description based on document content """ | |
template = ( | |
""" | |
You are a SEO expert bot. Your task is to craft a meaningful summary to descripe and organize documents. | |
The description should be a meaningful summary of the document's content and help us in searching and retrieving the documents later. | |
You will only respond with the clear, concise and meaningful description. | |
<<< | |
Document: {document} | |
>>> | |
Description: | |
""" | |
) | |
prompt = PromptTemplate.from_template(template=template) | |
chain = prompt | llm_model | StrOutputParser() | |
result = chain.invoke({'document': document}) | |
return result.strip() |