Platform
Resources
Pricing
Sign in
Get started
Aaron Ge
Workspace
Fork
Public
By
Aaron Ge
Edited
Aug 29, 2023
1
Insert cell
Insert cell
Insert cell
langchain
=
import
(
"https://esm.sh/langchain/llms/openai"
)
;
Insert cell
OpenAI
=
langchain
.
OpenAI
Insert cell
viewof
openaiApiKey
=
Inputs
.
text
(
{
label
:
"OpenAI API Key"
,
placeholder
:
"Enter your OpenAI API Key"
}
)
Insert cell
memory
=
import
(
"https://cdn.jsdelivr.net/npm/langchain/vectorstores/memory/+esm"
)
Insert cell
Memory
=
memory
.
MemoryVectorStore
Insert cell
openAIEmbeddings
=
import
(
"https://esm.sh/langchain/embeddings/openai"
)
Insert cell
OpenAIEmbeddings
=
openAIEmbeddings
.
OpenAIEmbeddings
Insert cell
stateOfTheUnionSpeech
=
(
await
fetch
(
"https://raw.githubusercontent.com/hwchase17/chroma-langchain/master/state_of_the_union.txt"
)
)
.
text
(
)
Insert cell
Insert cell
embeddings
=
new
OpenAIEmbeddings
(
{
openAIApiKey
:
openaiApiKey
}
)
Insert cell
chains
=
import
(
"https://esm.sh/langchain/chains"
)
Insert cell
RetrievalQAChain
=
chains
.
RetrievalQAChain
Insert cell
loadQAStuffChain
=
chains
.
loadQAStuffChain
Insert cell
splitter
=
import
(
"https://esm.sh/langchain/text_splitter"
)
Insert cell
TokenTextSplitter
=
splitter
.
TokenTextSplitter
Insert cell
split
=
new
TokenTextSplitter
(
{
encodingName
:
"gpt2"
,
chunkSize
:
200
,
chunkOverlap
:
0
,
}
)
;
Insert cell
stateOfTheUnionSplit
=
await
split
.
createDocuments
(
[
stateOfTheUnionSpeech
]
,
{
chunkHeader
:
`DOCUMENT NAME: Joe Biden's State of the Union Speech\n\n---\n\n`
,
appendChunkOverlapHeader
:
true
,
}
)
;
Insert cell
vectorStore
=
new
Memory
(
embeddings
,
{
collectionName
:
"testing"
}
)
;
Insert cell
ids
=
await
vectorStore
.
addDocuments
(
stateOfTheUnionSplit
)
;
Insert cell
resultOne
=
await
vectorStore
.
similaritySearch
(
"Ukrainian people"
,
3
)
;
Insert cell
resultOne
[
0
]
.
pageContent
Insert cell
model
=
new
OpenAI
(
{
temperature
:
0.7
,
openAIApiKey
:
openaiApiKey
}
)
;
Insert cell
chain
=
new
RetrievalQAChain
(
{
combineDocumentsChain
:
loadQAStuffChain
(
model
)
,
retriever
:
vectorStore
.
asRetriever
(
)
,
returnSourceDocuments
:
true
,
}
)
;
Insert cell
res
=
await
chain
.
call
(
{
query
:
"Does Joe Biden like Putin?"
,
}
)
;
Insert cell
Insert cell
Purpose-built for displays of data
Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Try it for free
Learn more
Fork
View
Export
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
langchain
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
OpenAI
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
openaiApiKey
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
memory
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Memory
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
openAIEmbeddings
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
OpenAIEmbeddings
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
stateOfTheUnionSpeech
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
embeddings
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
chains
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
RetrievalQAChain
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
loadQAStuffChain
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
splitter
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
TokenTextSplitter
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
split
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
stateOfTheUnionSplit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
vectorStore
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
ids
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
resultOne
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
model
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
chain
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
res
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML