Skip to content

Commit

Permalink
ML/LLM: Updates for compatibility with LangChain 0.2
Browse files Browse the repository at this point in the history
- Imports: `langchain-cli migrate --include-ipynb .`
- SQLDatabaseLoader superseded SQLAlchemyLoader
  • Loading branch information
amotl committed Jun 6, 2024
1 parent a4106bf commit 0fb2976
Show file tree
Hide file tree
Showing 11 changed files with 42 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
"execution_count": 2,
"outputs": [],
"source": [
"from langchain.memory.chat_message_histories import CrateDBChatMessageHistory\n",
"from langchain_community.chat_message_histories import CrateDBChatMessageHistory\n",
"\n",
"# Connect to a self-managed CrateDB instance.\n",
"CONNECTION_STRING = \"crate://crate@localhost/?schema=notebook\"\n",
Expand Down Expand Up @@ -153,11 +153,10 @@
"from datetime import datetime\n",
"from typing import Any\n",
"\n",
"from langchain.memory.chat_message_histories.sql import BaseMessageConverter\n",
"from langchain.schema import AIMessage, BaseMessage, HumanMessage, SystemMessage\n",
"\n",
"import sqlalchemy as sa\n",
"from sqlalchemy.orm import declarative_base\n",
"from langchain_community.chat_message_histories.sql import BaseMessageConverter\n",
"from langchain_core.messages import AIMessage, BaseMessage, HumanMessage, SystemMessage\n",
"\n",
"\n",
"Base = declarative_base()\n",
Expand Down Expand Up @@ -284,7 +283,7 @@
"import json\n",
"import typing as t\n",
"\n",
"from langchain.memory.chat_message_histories.cratedb import CrateDBMessageConverter\n",
"from langchain_community.chat_message_histories.cratedb import CrateDBMessageConverter\n",
"from langchain.schema import _message_to_dict\n",
"\n",
"\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import os
from pprint import pprint

from langchain.memory.chat_message_histories import CrateDBChatMessageHistory
from langchain_community.chat_message_histories import CrateDBChatMessageHistory


CONNECTION_STRING = os.environ.get(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,12 @@
"import pandas as pd\n",
"import sqlalchemy as sa\n",
"\n",
"from langchain.document_loaders import PyPDFLoader\n",
"from langchain.embeddings.openai import OpenAIEmbeddings\n",
"from langchain.text_splitter import RecursiveCharacterTextSplitter\n",
"\n",
"# TODO: Bring this into the `crate-python` driver.\n",
"from cratedb_toolkit.sqlalchemy.patch import patch_inspector\n",
"from langchain_community.document_loaders import PyPDFLoader\n",
"from langchain_text_splitters import RecursiveCharacterTextSplitter\n",
"from langchain_openai import OpenAIEmbeddings\n",
"\n",
"patch_inspector()"
]
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,8 @@
},
"outputs": [],
"source": [
"from langchain.document_loaders.csv_loader import CSVLoader\n",
"from langchain.vectorstores import Chroma\n",
"from langchain.chat_models import ChatOpenAI\n",
"from langchain.text_splitter import RecursiveCharacterTextSplitter\n",
"from langchain.chains import RetrievalQA, ConversationalRetrievalChain\n",
"from langchain.llms import OpenAI\n",
"from langchain_openai import OpenAIEmbeddings\n",
"from langchain_openai import ChatOpenAI, OpenAI, OpenAIEmbeddings\n",
"import pandas as pd\n",
"import sqlalchemy as sa\n",
"from sqlalchemy import create_engine\n",
Expand All @@ -76,7 +71,10 @@
"import openai\n",
"import os\n",
"import requests\n",
"from pueblo.util.environ import getenvpass"
"from pueblo.util.environ import getenvpass\n",
"from langchain_community.document_loaders import CSVLoader\n",
"from langchain_community.vectorstores import Chroma\n",
"from langchain_text_splitters import RecursiveCharacterTextSplitter"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,9 +105,9 @@
"import requests\n",
"\n",
"from pueblo.util.environ import getenvpass\n",
"from langchain.document_loaders.csv_loader import CSVLoader\n",
"from langchain_openai import OpenAIEmbeddings\n",
"from langchain.vectorstores import CrateDBVectorSearch\n",
"from langchain_community.document_loaders import CSVLoader\n",
"from langchain_community.vectorstores import CrateDBVectorSearch\n",
"\n",
"warnings.filterwarnings('ignore')"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,6 @@
"\n",
"\n",
"from pueblo.util.environ import getenvpass\n",
"from langchain.embeddings import VertexAIEmbeddings\n",
"from langchain.llms import VertexAI\n",
"from google.cloud import aiplatform\n",
"from vertexai.generative_models import (\n",
" GenerationConfig,\n",
Expand All @@ -117,9 +115,10 @@
" HarmBlockThreshold,\n",
" HarmCategory,\n",
")\n",
"\n",
"from langchain.document_loaders.csv_loader import CSVLoader\n",
"from langchain.vectorstores import CrateDBVectorSearch\n",
"from langchain_community.document_loaders import CSVLoader\n",
"from langchain_community.embeddings import VertexAIEmbeddings\n",
"from langchain_community.llms import VertexAI\n",
"from langchain_community.vectorstores import CrateDBVectorSearch\n",
"\n",
"warnings.filterwarnings('ignore')"
]
Expand Down
12 changes: 8 additions & 4 deletions topic/machine-learning/llm-langchain/document_loader.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -103,12 +103,16 @@
},
"outputs": [],
"source": [
"from langchain.document_loaders import CrateDBLoader\n",
"import sqlalchemy as sa\n",
"from langchain_community.document_loaders import CrateDBLoader\n",
"from langchain_community.utilities.sql_database import SQLDatabase\n",
"from pprint import pprint\n",
"\n",
"db = SQLDatabase(engine=sa.create_engine(CONNECTION_STRING))\n",
"\n",
"loader = CrateDBLoader(\n",
" 'SELECT * FROM mlb_teams_2012 ORDER BY \"Team\" LIMIT 5;',\n",
" url=CONNECTION_STRING,\n",
" db=db,\n",
")\n",
"documents = loader.load()"
]
Expand Down Expand Up @@ -151,7 +155,7 @@
"source": [
"loader = CrateDBLoader(\n",
" 'SELECT * FROM mlb_teams_2012 ORDER BY \"Team\" LIMIT 5;',\n",
" url=CONNECTION_STRING,\n",
" db=db,\n",
" page_content_columns=[\"Team\"],\n",
" metadata_columns=[\"Payroll (millions)\"],\n",
")\n",
Expand Down Expand Up @@ -194,7 +198,7 @@
"source": [
"loader = CrateDBLoader(\n",
" 'SELECT * FROM mlb_teams_2012 ORDER BY \"Team\" LIMIT 5;',\n",
" url=CONNECTION_STRING,\n",
" db=db,\n",
" source_columns=[\"Team\"],\n",
")\n",
"documents = loader.load()"
Expand Down
8 changes: 6 additions & 2 deletions topic/machine-learning/llm-langchain/document_loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@
import os

import requests
import sqlalchemy as sa
from cratedb_toolkit.util import DatabaseAdapter
from langchain.document_loaders import CrateDBLoader
from langchain_community.document_loaders import CrateDBLoader
from langchain_community.utilities.sql_database import SQLDatabase
from pprint import pprint


Expand All @@ -55,10 +57,12 @@ def main():
# Load data.
import_mlb_teams_2012()

db = SQLDatabase(engine=sa.create_engine(CONNECTION_STRING))

# Query data.
loader = CrateDBLoader(
query="SELECT * FROM mlb_teams_2012 LIMIT 3;",
url=CONNECTION_STRING,
db=db,
include_rownum_into_metadata=True,
)
docs = loader.load()
Expand Down
1 change: 1 addition & 0 deletions topic/machine-learning/llm-langchain/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ cratedb-toolkit==0.0.12
google-cloud-aiplatform<2
langchain-google-vertexai<2
langchain-openai<0.2
langchain-text-splitters<0.3
pueblo[cli,nlp]>=0.0.7
pydantic>=1,<3
pypdf<5
Expand Down
6 changes: 3 additions & 3 deletions topic/machine-learning/llm-langchain/vector_search.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -163,9 +163,9 @@
"metadata": {},
"outputs": [],
"source": [
"from langchain.docstore.document import Document\n",
"from langchain.embeddings.openai import OpenAIEmbeddings\n",
"from langchain.vectorstores import CrateDBVectorSearch"
"from langchain_community.vectorstores import CrateDBVectorSearch\n",
"from langchain_core.documents import Document\n",
"from langchain_openai import OpenAIEmbeddings"
]
},
{
Expand Down
8 changes: 4 additions & 4 deletions topic/machine-learning/llm-langchain/vector_search.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@
# Run program.
python vector_search.py
""" # noqa: E501
from langchain.document_loaders import UnstructuredURLLoader
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import CrateDBVectorSearch
from langchain_community.document_loaders import UnstructuredURLLoader
from langchain_community.vectorstores import CrateDBVectorSearch
from langchain_text_splitters import CharacterTextSplitter
from langchain_openai import OpenAIEmbeddings


def main():
Expand Down

0 comments on commit 0fb2976

Please sign in to comment.