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.