Skip to content

Commit

Permalink
update postgres notebook
Browse files Browse the repository at this point in the history
  • Loading branch information
bracesproul committed Aug 19, 2024
1 parent 9968c93 commit fc1a483
Show file tree
Hide file tree
Showing 3 changed files with 146 additions and 27 deletions.
46 changes: 19 additions & 27 deletions examples/how-tos/persistence-postgres.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -104,14 +104,14 @@
" const client = await this.pool.connect();\n",
" try {\n",
" await client.query(`\n",
" CREATE TABLE IF NOT EXISTS checkpoints (\n",
" thread_id TEXT NOT NULL,\n",
" checkpoint_id TEXT NOT NULL,\n",
" parent_id TEXT,\n",
" checkpoint BYTEA NOT NULL,\n",
" metadata BYTEA NOT NULL,\n",
" PRIMARY KEY (thread_id, checkpoint_id)\n",
" );\n",
"CREATE TABLE IF NOT EXISTS checkpoints (\n",
" thread_id TEXT NOT NULL,\n",
" checkpoint_id TEXT NOT NULL,\n",
" parent_id TEXT,\n",
" checkpoint BYTEA NOT NULL,\n",
" metadata BYTEA NOT NULL,\n",
" PRIMARY KEY (thread_id, checkpoint_id)\n",
");\n",
" `);\n",
" this.isSetup = true;\n",
" } catch (error) {\n",
Expand Down Expand Up @@ -314,7 +314,7 @@
},
"outputs": [],
"source": [
"process.env.OPENAI_API_KEY = \"sk-...\";"
"// process.env.OPENAI_API_KEY = \"sk-...\";"
]
},
{
Expand All @@ -336,20 +336,14 @@
},
"outputs": [],
"source": [
"import { Annotation } from \"@langchain/langgraph\";\n",
"import { BaseMessage } from \"@langchain/core/messages\";\n",
"import { StateGraphArgs } from \"@langchain/langgraph\";\n",
"\n",
"interface IState {\n",
" messages: BaseMessage[];\n",
"}\n",
"\n",
"// This defines the agent state\n",
"const graphState: StateGraphArgs<IState>[\"channels\"] = {\n",
" messages: {\n",
" value: (x: BaseMessage[], y: BaseMessage[]) => x.concat(y),\n",
" default: () => [],\n",
" },\n",
"};"
"const AgentState = Annotation.Root({\n",
" messages: Annotation<BaseMessage[]>({\n",
" reducer: (x, y) => x.concat(y),\n",
" }),\n",
"});"
]
},
{
Expand Down Expand Up @@ -418,7 +412,7 @@
"source": [
"import { ToolNode } from \"@langchain/langgraph/prebuilt\";\n",
"\n",
"const toolNode = new ToolNode<{ messages: BaseMessage[] }>(tools);"
"const toolNode = new ToolNode<typeof AgentState.State>(tools);"
]
},
{
Expand Down Expand Up @@ -501,7 +495,7 @@
"import { AIMessage } from \"@langchain/core/messages\";\n",
"import { RunnableConfig } from \"@langchain/core/runnables\";\n",
"\n",
"const routeMessage = (state: IState) => {\n",
"const routeMessage = (state: typeof AgentState.State) => {\n",
" const { messages } = state;\n",
" const lastMessage = messages[messages.length - 1] as AIMessage;\n",
" // If no tools are called, we can finish (respond to the user)\n",
Expand All @@ -513,7 +507,7 @@
"};\n",
"\n",
"const callModel = async (\n",
" state: IState,\n",
" state: typeof AgentState.State,\n",
" config?: RunnableConfig,\n",
") => {\n",
" // For versions of @langchain/core < 0.2.3, you must call `.stream()`\n",
Expand All @@ -523,9 +517,7 @@
" return { messages: [responseMessage] };\n",
"};\n",
"\n",
"const workflow = new StateGraph<IState>({\n",
" channels: graphState,\n",
"})\n",
"const workflow = new StateGraph(AgentState)\n",
" .addNode(\"agent\", callModel)\n",
" .addNode(\"tools\", toolNode)\n",
" .addEdge(START, \"agent\")\n",
Expand Down
1 change: 1 addition & 0 deletions examples/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"d3": "^7.9.0",
"dotenv": "^16.4.5",
"langchain": "^0.2.16",
"pg": "^8.11.0",
"tslab": "^1.0.22",
"uuid": "^10.0.0",
"zod": "^3.23.8",
Expand Down
126 changes: 126 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -6028,6 +6028,7 @@ __metadata:
d3: ^7.9.0
dotenv: ^16.4.5
langchain: ^0.2.16
pg: ^8.11.0
tslab: ^1.0.22
uuid: ^10.0.0
zod: ^3.23.8
Expand Down Expand Up @@ -10085,6 +10086,87 @@ __metadata:
languageName: node
linkType: hard

"pg-cloudflare@npm:^1.1.1":
version: 1.1.1
resolution: "pg-cloudflare@npm:1.1.1"
checksum: 32aac06b5dc4588bbf78801b6267781bc7e13be672009df949d08e9627ba9fdc26924916665d4de99d47f9b0495301930547488dad889d826856976c7b3f3731
languageName: node
linkType: hard

"pg-connection-string@npm:^2.6.4":
version: 2.6.4
resolution: "pg-connection-string@npm:2.6.4"
checksum: 2c1d2ac1add1f93076f1594d217a0980f79add05dc48de6363e1c550827c78a6ee3e3b5420da9c54858f6b678cdb348aed49732ee68158b6cdb70f1d1c748cf9
languageName: node
linkType: hard

"pg-int8@npm:1.0.1":
version: 1.0.1
resolution: "pg-int8@npm:1.0.1"
checksum: a1e3a05a69005ddb73e5f324b6b4e689868a447c5fa280b44cd4d04e6916a344ac289e0b8d2695d66e8e89a7fba023affb9e0e94778770ada5df43f003d664c9
languageName: node
linkType: hard

"pg-pool@npm:^3.6.2":
version: 3.6.2
resolution: "pg-pool@npm:3.6.2"
peerDependencies:
pg: ">=8.0"
checksum: 5ceee4320a35fce08777d085d50a30a1253574257e1e7c5c56c915056d387d340f797115580c8d90a46691f83c39a9b4da1fd810d9ad168cc455c79c289116f4
languageName: node
linkType: hard

"pg-protocol@npm:^1.6.1":
version: 1.6.1
resolution: "pg-protocol@npm:1.6.1"
checksum: cce3f72cc4bdc04db9ce3fa38b2c45b745f0a95a925847b349087f52c02c4d51b7c74d8867e40639699d0c7609accfaffb6b1d221b3268d2bdc4bb8d6a2995a3
languageName: node
linkType: hard

"pg-types@npm:^2.1.0":
version: 2.2.0
resolution: "pg-types@npm:2.2.0"
dependencies:
pg-int8: 1.0.1
postgres-array: ~2.0.0
postgres-bytea: ~1.0.0
postgres-date: ~1.0.4
postgres-interval: ^1.1.0
checksum: bf4ec3f594743442857fb3a8dfe5d2478a04c98f96a0a47365014557cbc0b4b0cee01462c79adca863b93befbf88f876299b75b72c665b5fb84a2c94fbd10316
languageName: node
linkType: hard

"pg@npm:^8.11.0":
version: 8.12.0
resolution: "pg@npm:8.12.0"
dependencies:
pg-cloudflare: ^1.1.1
pg-connection-string: ^2.6.4
pg-pool: ^3.6.2
pg-protocol: ^1.6.1
pg-types: ^2.1.0
pgpass: 1.x
peerDependencies:
pg-native: ">=3.0.1"
dependenciesMeta:
pg-cloudflare:
optional: true
peerDependenciesMeta:
pg-native:
optional: true
checksum: 8450b61c787f360e22182aa853548f834f13622714868d0789a60f63743d66ae28930cdca0ef0251bfc89b04679e9074c1398f172c2937bf59b5a360337f4149
languageName: node
linkType: hard

"pgpass@npm:1.x":
version: 1.0.5
resolution: "pgpass@npm:1.0.5"
dependencies:
split2: ^4.1.0
checksum: 947ac096c031eebdf08d989de2e9f6f156b8133d6858c7c2c06c041e1e71dda6f5f3bad3c0ec1e96a09497bbc6ef89e762eefe703b5ef9cb2804392ec52ec400
languageName: node
linkType: hard

"picocolors@npm:^1.0.0":
version: 1.0.0
resolution: "picocolors@npm:1.0.0"
Expand Down Expand Up @@ -10129,6 +10211,36 @@ __metadata:
languageName: node
linkType: hard

"postgres-array@npm:~2.0.0":
version: 2.0.0
resolution: "postgres-array@npm:2.0.0"
checksum: 0e1e659888147c5de579d229a2d95c0d83ebdbffc2b9396d890a123557708c3b758a0a97ed305ce7f58edfa961fa9f0bbcd1ea9f08b6e5df73322e683883c464
languageName: node
linkType: hard

"postgres-bytea@npm:~1.0.0":
version: 1.0.0
resolution: "postgres-bytea@npm:1.0.0"
checksum: d844ae4ca7a941b70e45cac1261a73ee8ed39d72d3d74ab1d645248185a1b7f0ac91a3c63d6159441020f4e1f7fe64689ac56536a307b31cef361e5187335090
languageName: node
linkType: hard

"postgres-date@npm:~1.0.4":
version: 1.0.7
resolution: "postgres-date@npm:1.0.7"
checksum: 5745001d47e51cd767e46bcb1710649cd705d91a24d42fa661c454b6dcbb7353c066a5047983c90a626cd3bbfea9e626cc6fa84a35ec57e5bbb28b49f78e13ed
languageName: node
linkType: hard

"postgres-interval@npm:^1.1.0":
version: 1.2.0
resolution: "postgres-interval@npm:1.2.0"
dependencies:
xtend: ^4.0.0
checksum: 746b71f93805ae33b03528e429dc624706d1f9b20ee81bf743263efb6a0cd79ae02a642a8a480dbc0f09547b4315ab7df6ce5ec0be77ed700bac42730f5c76b2
languageName: node
linkType: hard

"prebuild-install@npm:^7.1.1":
version: 7.1.2
resolution: "prebuild-install@npm:7.1.2"
Expand Down Expand Up @@ -11003,6 +11115,13 @@ __metadata:
languageName: node
linkType: hard

"split2@npm:^4.1.0":
version: 4.2.0
resolution: "split2@npm:4.2.0"
checksum: 05d54102546549fe4d2455900699056580cca006c0275c334611420f854da30ac999230857a85fdd9914dc2109ae50f80fda43d2a445f2aa86eccdc1dfce779d
languageName: node
linkType: hard

"sprintf-js@npm:^1.1.3":
version: 1.1.3
resolution: "sprintf-js@npm:1.1.3"
Expand Down Expand Up @@ -12088,6 +12207,13 @@ __metadata:
languageName: node
linkType: hard

"xtend@npm:^4.0.0":
version: 4.0.2
resolution: "xtend@npm:4.0.2"
checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a
languageName: node
linkType: hard

"y18n@npm:^5.0.5":
version: 5.0.8
resolution: "y18n@npm:5.0.8"
Expand Down

0 comments on commit fc1a483

Please sign in to comment.