mirror of
https://github.com/hwchase17/langchain.git
synced 2025-09-02 11:39:18 +00:00
Harrison/sqlalchemy cache store (#536)
Co-authored-by: Jason Gill <jasongill@gmail.com>
This commit is contained in:
@@ -276,6 +276,52 @@
|
||||
"# langchain.llm_cache = SQLAlchemyCache(engine)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"### Custom SQLAlchemy Schemas"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# You can define your own declarative SQLAlchemyCache child class to customize the schema used for caching. For example, to support high-speed fulltext prompt indexing with Postgres, use:\n",
|
||||
"\n",
|
||||
"from sqlalchemy import Column, Integer, String, Computed, Index, Sequence\n",
|
||||
"from sqlalchemy import create_engine\n",
|
||||
"from sqlalchemy.ext.declarative import declarative_base\n",
|
||||
"from sqlalchemy_utils import TSVectorType\n",
|
||||
"from langchain.cache import SQLAlchemyCache\n",
|
||||
"\n",
|
||||
"Base = declarative_base()\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"class FulltextLLMCache(Base): # type: ignore\n",
|
||||
" \"\"\"Postgres table for fulltext-indexed LLM Cache\"\"\"\n",
|
||||
"\n",
|
||||
" __tablename__ = \"llm_cache_fulltext\"\n",
|
||||
" id = Column(Integer, Sequence('cache_id'), primary_key=True)\n",
|
||||
" prompt = Column(String, nullable=False)\n",
|
||||
" llm = Column(String, nullable=False)\n",
|
||||
" idx = Column(Integer)\n",
|
||||
" response = Column(String)\n",
|
||||
" prompt_tsv = Column(TSVectorType(), Computed(\"to_tsvector('english', llm || ' ' || prompt)\", persisted=True))\n",
|
||||
" __table_args__ = (\n",
|
||||
" Index(\"idx_fulltext_prompt_tsv\", prompt_tsv, postgresql_using=\"gin\"),\n",
|
||||
" )\n",
|
||||
"\n",
|
||||
"engine = create_engine(\"postgresql://postgres:postgres@localhost:5432/postgres\")\n",
|
||||
"langchain.llm_cache = SQLAlchemyCache(engine, FulltextLLMCache)"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "0c69d84d",
|
||||
|
Reference in New Issue
Block a user