Man

Development & AI | Alper Akgun

Leaning langchain

September, 2023

Please read the first part of this blog to setup langchain and import. Here I try some use cases for langchain.

Converting an llm response to a python array.


from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
from langchain.llms import GPT4All
from langchain.schema import BaseOutputParser
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler


class CommaSeparatedListOutputParser(BaseOutputParser):
    """Parse a text to a comma-separated list."""


    def parse(self, text: str):
        """Parse a text."""
        return text.strip().split(", ")

template = """You are a helpful assistant who generates comma separated lists.
A user will pass in a category, and you should generate 5 objects in that category in a comma separated list.
ONLY return a comma separated list, and nothing more.

Category: {category} """

prompt = PromptTemplate(template=template, input_variables=["category"])

llm = GPT4All(model= ("./model.bin"), callbacks=[StreamingStdOutCallbackHandler()], verbose=True)

chain = prompt | llm | CommaSeparatedListOutputParser()
print("\n","-" * 10)
chain.invoke({ "category": "fruits" })
print("\n","-" * 10)
            

Q & A from a document


from langchain.document_loaders import WebBaseLoader
from langchain.indexes import VectorstoreIndexCreator

loader = WebBaseLoader("https://lilianweng.github.io/posts/2023-06-23-agent/")
index = VectorstoreIndexCreator().from_loaders([loader])