El Carro for Oracle Databases for LangChain
Known Limitations
-
The library supports El Carro Operator for Oracle 18c and higher versions.
-
By default the library uses thin mode. for Oracle connectivity, to use thick mode please follow the corresponding section. .
-
To use VARCHAR2 datatype of size more than 4000 please change the parameter MAX_STRING_SIZE. in the Oracle instance.
Quick Start
Create an El Carro Operator Oracle Instance and a Database (PDB)
In order to use this library, you first need to have an El Carro Operator software running with an Instance (CDB) and a Database (PDB).
Please follow the steps for El Carro Oracle Operator to provision a new database and create a PDB:
Installation
Install this library in a virtualenv using pip. virtualenv is a tool to create isolated Python environments. The basic problem it addresses is one of dependencies and versions, and indirectly permissions.
With virtualenv , it’s possible to install this library without needing system install permissions, and without clashing with the installed system dependencies.
Supported Python Versions
Python >= 3.8
Mac/Linux
pip install virtualenv
virtualenv <your-env>
source <your-env>/bin/activate
<your-env>/bin/pip install langchain-google-el-carro
Windows
pip install virtualenv
virtualenv <your-env>
<your-env>\Scripts\activate
<your-env>\Scripts\pip.exe install langchain-google-el-carro
Document Loader Usage
Use a document loader to load data as LangChain Document
s.
from langchain_google_el_carro import ElCarroEngine
from langchain_google_el_carro.loader import \
ElCarroLoader, ElCarroDocumentSaver
elcarro_engine = ElCarroEngine.from_instance(
"Your El Carro endpoint hostname", # e.g. 127.0.0.1
"Your El Carro endpoint port", # e.g. 3307
"Your PDB name", # e.g. PDB1
"Your DB user",
"Your DB password",
)
loader = ElCarroLoader(
elcarro_engine,
table_name="my-table-name"
)
docs = loader.lazy_load()
See the full Document Loader tutorial.
Chat Message History Usage
Use ChatMessageHistory
to store messages and provide conversation
history to LLMs.
from langchain_google_el_carro import ElCarroEngine
from langchain_google_el_carro.chat_message_history import \
ElCarroChatMessageHistory
elcarro_engine = ElCarroEngine.from_instance(
"Your El Carro endpoint hostname", # e.g. 127.0.0.1
"Your El Carro endpoint port", # e.g. 3307
"Your PDB name", # e.g. PDB1
"Your DB user",
"Your DB password",
)
history = ElCarroChatMessageHistory(
elcarro_engine=elcarro_engine,
table_name="my-message-store",
session_id="my-session_id"
)
See the full Chat Message History tutorial.
Oracle Thick Mode Connectivity
Thick mode connectivity requires you to install the Oracle Client libraries and pass thick_mode=True
to ElCarroEngine
. Follow these sections of the oracledb installation guide:
Example for Linux x64, glibc 2.14+:
wget https://download.oracle.com/otn_software/linux/instantclient/2113000/instantclient-basic-linux.x64-21.13.0.0.0dbru.zip -O /tmp/drv.zip
rm -fr /tmp/instantclient_21_13/; unzip /tmp/drv.zip -d /tmp
export LD_LIBRARY_PATH=/tmp/instantclient_21_13/:$LD_LIBRARY_PATH
Contributions
Contributions to this library are always welcome and highly encouraged.
See CONTRIBUTING for more information how to get started.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. See Code of Conduct for more information.
License
Apache 2.0 - See LICENSE for more information.
Disclaimer
This is not an officially supported Google product.

