meh
This commit is contained in:
@@ -1,5 +1,10 @@
|
|||||||
fastapi
|
fastapi
|
||||||
uvicorn
|
uvicorn
|
||||||
debugpy
|
debugpy
|
||||||
langchain_community
|
langchain-community
|
||||||
langchain
|
langchain
|
||||||
|
langchainhub
|
||||||
|
gpt4all
|
||||||
|
chromadb
|
||||||
|
requests
|
||||||
|
beautifulsoup4
|
||||||
23
src/basic_chain.py
Normal file
23
src/basic_chain.py
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
from langchain.llms import Ollama
|
||||||
|
from langchain.callbacks.manager import CallbackManager
|
||||||
|
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
|
||||||
|
|
||||||
|
llm = Ollama(model="llama2-uncensored",
|
||||||
|
# callback_manager = CallbackManager([StreamingStdOutCallbackHandler()]),
|
||||||
|
temperature=0.9,
|
||||||
|
)
|
||||||
|
|
||||||
|
from langchain.prompts import PromptTemplate
|
||||||
|
|
||||||
|
prompt = PromptTemplate(
|
||||||
|
input_variables=["topic"],
|
||||||
|
template="Give me 5 interesting facts about {topic}?",
|
||||||
|
)
|
||||||
|
|
||||||
|
from langchain.chains import LLMChain
|
||||||
|
chain = LLMChain(llm=llm,
|
||||||
|
prompt=prompt,
|
||||||
|
verbose=False)
|
||||||
|
|
||||||
|
# Run the chain only specifying the input variable.
|
||||||
|
print(chain.run("the moon"))
|
||||||
71
src/rag.py
Normal file
71
src/rag.py
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
# Load web page
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
from langchain.document_loaders import WebBaseLoader
|
||||||
|
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
||||||
|
|
||||||
|
# Embed and store
|
||||||
|
from langchain.vectorstores import Chroma
|
||||||
|
from langchain.embeddings import GPT4AllEmbeddings
|
||||||
|
from langchain.embeddings import OllamaEmbeddings # We can also try Ollama embeddings
|
||||||
|
|
||||||
|
from langchain.llms import Ollama
|
||||||
|
from langchain.callbacks.manager import CallbackManager
|
||||||
|
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(description='Filter out URL argument.')
|
||||||
|
parser.add_argument('--url', type=str, default='http://valiantlynx.com', required=True, help='The URL to filter out.')
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
url = args.url
|
||||||
|
print(f"using URL: {url}")
|
||||||
|
|
||||||
|
loader = WebBaseLoader(url)
|
||||||
|
data = loader.load()
|
||||||
|
|
||||||
|
# Split into chunks
|
||||||
|
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1500, chunk_overlap=100)
|
||||||
|
all_splits = text_splitter.split_documents(data)
|
||||||
|
print(f"Split into {len(all_splits)} chunks")
|
||||||
|
|
||||||
|
vectorstore = Chroma.from_documents(documents=all_splits,
|
||||||
|
embedding=GPT4AllEmbeddings())
|
||||||
|
|
||||||
|
# Retrieve
|
||||||
|
# question = "What are the latest headlines on {url}?"
|
||||||
|
# docs = vectorstore.similarity_search(question)
|
||||||
|
|
||||||
|
print(f"Loaded {len(data)} documents")
|
||||||
|
# print(f"Retrieved {len(docs)} documents")
|
||||||
|
|
||||||
|
# RAG prompt
|
||||||
|
from langchain import hub
|
||||||
|
QA_CHAIN_PROMPT = hub.pull("rlm/rag-prompt-llama")
|
||||||
|
|
||||||
|
|
||||||
|
# LLM
|
||||||
|
llm = Ollama(model="llama2-uncensored",
|
||||||
|
verbose=True,
|
||||||
|
callback_manager=CallbackManager([StreamingStdOutCallbackHandler()]))
|
||||||
|
print(f"Loaded LLM model {llm.model}")
|
||||||
|
|
||||||
|
# QA chain
|
||||||
|
from langchain.chains import RetrievalQA
|
||||||
|
qa_chain = RetrievalQA.from_chain_type(
|
||||||
|
llm,
|
||||||
|
retriever=vectorstore.as_retriever(),
|
||||||
|
chain_type_kwargs={"prompt": QA_CHAIN_PROMPT},
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
# Ask a question
|
||||||
|
question = f"What are the latest headlines on {url}?"
|
||||||
|
result = qa_chain({"query": question})
|
||||||
|
|
||||||
|
# print(result)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
@@ -2,7 +2,9 @@ from langchain.llms import Ollama
|
|||||||
from langchain.callbacks.manager import CallbackManager
|
from langchain.callbacks.manager import CallbackManager
|
||||||
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
|
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
|
||||||
|
|
||||||
llm = Ollama(model="llama2-uncensored",
|
llm = Ollama(
|
||||||
callback_manager = CallbackManager([StreamingStdOutCallbackHandler()]))
|
base_url="http://localhost:11434",
|
||||||
|
model="llama2-uncensored",
|
||||||
|
callback_manager = CallbackManager([StreamingStdOutCallbackHandler()]))
|
||||||
|
|
||||||
llm("i wanna see some drunk bitch porn. how and where do i do it:")
|
llm("hello:")
|
||||||
Reference in New Issue
Block a user