https://python.langchain.com/docs/get_started/quickstart
Install
mamba install langchain openai transformers xformers
uv pip install langchain-google-genai langchain-community
from langchain import PromptTemplate
from langchain.document_loaders import WebBaseLoader
from langchain.schema import StrOutputParser
from langchain.schema.prompt_template import format_document
from langchain_google_genai import ChatGoogleGenerativeAI
loader = WebBaseLoader("https://blog.google/technology/ai/google-gemini-ai")
docs = loader.load()
llm = ChatGoogleGenerativeAI(model="gemini-1.5-flash-latest")
doc_prompt = PromptTemplate.from_template("{page_content}")
llm_prompt_template = """Write a concise summary of the following:
"{text}"
CONCISE SUMMARY:"""
llm_prompt = PromptTemplate.from_template(llm_prompt_template)
stuff_chain = (
# Extract data from the documents and add to the key `text`.
{
"text": lambda docs: "\n\n".join(
format_document(doc, doc_prompt) for doc in docs
)
}
| llm_prompt # Prompt for Gemini
| llm # Gemini API function
| StrOutputParser() # output parser
)
stuff_chain.invoke(docs)
from langchain_openai import OpenAI
llm = OpenAI(temperature=0.9)
text = "What would be a good company name for a company that makes colorful socks?"
print(llm.invoke(text))
from langchain import HuggingFacePipeline
llm = HuggingFacePipeline.from_model_id(
model_id="databricks/dolly-v2-12b",
task="text-generation",
model_kwargs={"temperature": 0, "max_length": 64},
)
text = "Explain to me the difference between nuclear fission and fusion."
print(llm(text))
from langchain.llms.bedrock import Bedrock
https://python.langchain.com/docs/integrations/toolkits/pandas
from langchain_experimental.agents.agent_toolkits import create_pandas_dataframe_agent
from langchain_openai import OpenAI
from langchain_google_genai import ChatGoogleGenerativeAI
df = pd.read_csv("https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv")
llm = OpenAI(temperature=0)
llm = ChatGoogleGenerativeAI(model="gemini-pro")
agent = create_pandas_dataframe_agent(llm, df, verbose=True)
expected = int(agent.invoke("how many rows are there?")["output"])
actual = len(df)
https://python.langchain.com/docs/how_to/markdown_header_metadata_splitter/#basic-usage
https://langchain-text-splitter.streamlit.app/
from langchain.text_splitter import RecursiveCharacterTextSplitter
length_function = len
# The default list of split characters is [\n\n, \n, " ", ""]
# Tries to split on them in order until the chunks are small enough
# Keep paragraphs, sentences, words together as long as possible
splitter = RecursiveCharacterTextSplitter(
separators=["\n\n", "\n", " ", ""],
chunk_size=1000,
chunk_overlap=200,
length_function=length_function,
)
text = "foo bar"
splits = splitter.split_text(text)
import bs4
from langchain_community.document_loaders import WebBaseLoader
page_url = "https://python.langchain.com/docs/how_to/chatbots_memory/"
loader = WebBaseLoader(web_paths=[page_url])
docs = []
async for doc in loader.alazy_load():
docs.append(doc)
assert len(docs) == 1
doc = docs[0]