RAG
Inicialmente el proyecto quería consultarlo desde la base datos con lenguaje natural, pero cambie de opinión porque quiero que sea una respuesta lo más acertada posible y decidí hacer una página web con el tabulador de infracciones para que lea y consulte la información desde un archivo html a este tipo de aplicaciones se le llama RAG la página se encuentra en la siguiente dirección https://tutosoftware.com/tutoriales/react/reglamento.htmlAbrimos el IDE PyCharm y creamos el proyecto llamado AseroriaVial
Instalamos la siguientes bibliotecas
from langchain_community.document_loaders import WebBaseLoader
from langchain_community.document_transformers import Html2TextTransformer
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_ollama import ChatOllama
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
urls = ["https://tutosoftware.com/tutoriales/react/reglamento.html"]
loader = WebBaseLoader(urls)
docs = loader.load()
html2text_transformer = Html2TextTransformer()
transformed_docs = html2text_transformer.transform_documents(docs)
#print(transformed_docs[0].page_content[:5000])
text_splitter = RecursiveCharacterTextSplitter(chunk_size=5000, chunk_overlap=100)
chunked_docs = text_splitter.split_documents(transformed_docs)
llm = ChatOllama(model="llama3.1", temperature=0.2)
prompt_template = ChatPromptTemplate.from_messages([
("system", "En que te puedo ayudar."),
("user", "Dime la multa por estacionarme en doble fila {document}"),
])
chain = prompt_template | llm | StrOutputParser()
response = chain.invoke({"document": chunked_docs[0].page_content})
print(response)
Probando primero para probar tenemos que correr ollama con el siguiente comando ollama run llama3.1

Tarda en ejecutarse ya que mi máquina cuenta con 16gigas en ram pero tengo oracle y mysql instalados entre otros programas por eso tarda en responder. La respuesta fue la siguiente:
