feat: add pytest-vcr for recording HTTP interactions in integration tests (#2445)

Using `pytest-vcr` in integration tests has several benefits. Firstly,
it removes the need to mock external services, as VCR records and
replays HTTP interactions on the fly. Secondly, it simplifies the
integration test setup by eliminating the need to set up and tear down
external services in some cases. Finally, it allows for more reliable
and deterministic integration tests by ensuring that HTTP interactions
are always replayed with the same response.
Overall, `pytest-vcr` is a valuable tool for simplifying integration
test setup and improving their reliability

This commit adds the `pytest-vcr` package as a dependency for
integration tests in the `pyproject.toml` file. It also introduces two
new fixtures in `tests/integration_tests/conftest.py` files for managing
cassette directories and VCR configurations.

In addition, the
`tests/integration_tests/vectorstores/test_elasticsearch.py` file has
been updated to use the `@pytest.mark.vcr` decorator for recording and
replaying HTTP interactions.

Finally, this commit removes the `documents` fixture from the
`test_elasticsearch.py` file and replaces it with a new fixture defined
in `tests/integration_tests/vectorstores/conftest.py` that yields a list
of documents to use in any other tests.

This also includes my second attempt to fix issue :
https://github.com/hwchase17/langchain/issues/2386

Maybe related https://github.com/hwchase17/langchain/issues/2484
This commit is contained in:
sergerdn 2023-04-07 07:28:57 -07:00 committed by GitHub
parent c9f93f5f74
commit 6dc86ad48f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 1946 additions and 17 deletions

View File

@ -27,7 +27,7 @@ FROM builder AS dependencies
COPY pyproject.toml poetry.lock poetry.toml ./ COPY pyproject.toml poetry.lock poetry.toml ./
# Install the Poetry dependencies (this layer will be cached as long as the dependencies don't change) # Install the Poetry dependencies (this layer will be cached as long as the dependencies don't change)
RUN $POETRY_HOME/bin/poetry install --no-interaction --no-ansi RUN $POETRY_HOME/bin/poetry install --no-interaction --no-ansi --with test
# Use a multi-stage build to run tests # Use a multi-stage build to run tests
FROM dependencies AS tests FROM dependencies AS tests
@ -35,7 +35,7 @@ FROM dependencies AS tests
# Copy the rest of the app source code (this layer will be invalidated and rebuilt whenever the source code changes) # Copy the rest of the app source code (this layer will be invalidated and rebuilt whenever the source code changes)
COPY . . COPY . .
RUN /opt/poetry/bin/poetry install --no-interaction --no-ansi RUN /opt/poetry/bin/poetry install --no-interaction --no-ansi --with test
# Set the entrypoint to run tests using Poetry # Set the entrypoint to run tests using Poetry
ENTRYPOINT ["/opt/poetry/bin/poetry", "run", "pytest"] ENTRYPOINT ["/opt/poetry/bin/poetry", "run", "pytest"]

View File

@ -146,6 +146,7 @@ class ElasticVectorSearch(VectorStore, ABC):
List of ids from adding the texts into the vectorstore. List of ids from adding the texts into the vectorstore.
""" """
try: try:
from elasticsearch.exceptions import NotFoundError
from elasticsearch.helpers import bulk from elasticsearch.helpers import bulk
except ImportError: except ImportError:
raise ValueError( raise ValueError(
@ -155,6 +156,17 @@ class ElasticVectorSearch(VectorStore, ABC):
requests = [] requests = []
ids = [] ids = []
embeddings = self.embedding.embed_documents(list(texts)) embeddings = self.embedding.embed_documents(list(texts))
dim = len(embeddings[0])
mapping = _default_text_mapping(dim)
# check to see if the index already exists
try:
self.client.indices.get(index=self.index_name)
except NotFoundError:
# TODO would be nice to create index before embedding,
# just to save expensive steps for last
self.client.indices.create(index=self.index_name, mappings=mapping)
for i, text in enumerate(texts): for i, text in enumerate(texts):
metadata = metadatas[i] if metadatas else {} metadata = metadatas[i] if metadatas else {}
_id = str(uuid.uuid4()) _id = str(uuid.uuid4())
@ -229,6 +241,7 @@ class ElasticVectorSearch(VectorStore, ABC):
) )
try: try:
import elasticsearch import elasticsearch
from elasticsearch.exceptions import NotFoundError
from elasticsearch.helpers import bulk from elasticsearch.helpers import bulk
except ImportError: except ImportError:
raise ValueError( raise ValueError(
@ -245,9 +258,15 @@ class ElasticVectorSearch(VectorStore, ABC):
embeddings = embedding.embed_documents(texts) embeddings = embedding.embed_documents(texts)
dim = len(embeddings[0]) dim = len(embeddings[0])
mapping = _default_text_mapping(dim) mapping = _default_text_mapping(dim)
# TODO would be nice to create index before embedding,
# just to save expensive steps for last # check to see if the index already exists
client.indices.create(index=index_name, mappings=mapping) try:
client.indices.get(index=index_name)
except NotFoundError:
# TODO would be nice to create index before embedding,
# just to save expensive steps for last
client.indices.create(index=index_name, mappings=mapping)
requests = [] requests = []
for i, text in enumerate(texts): for i, text in enumerate(texts):
metadata = metadatas[i] if metadatas else {} metadata = metadatas[i] if metadatas else {}

46
poetry.lock generated
View File

@ -1,4 +1,4 @@
# This file is automatically @generated by Poetry and should not be changed by hand. # This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand.
[[package]] [[package]]
name = "absl-py" name = "absl-py"
@ -5516,6 +5516,22 @@ files = [
pytest = ">=5.0.0" pytest = ">=5.0.0"
python-dotenv = ">=0.9.1" python-dotenv = ">=0.9.1"
[[package]]
name = "pytest-vcr"
version = "1.0.2"
description = "Plugin for managing VCR.py cassettes"
category = "dev"
optional = false
python-versions = "*"
files = [
{file = "pytest-vcr-1.0.2.tar.gz", hash = "sha256:23ee51b75abbcc43d926272773aae4f39f93aceb75ed56852d0bf618f92e1896"},
{file = "pytest_vcr-1.0.2-py2.py3-none-any.whl", hash = "sha256:2f316e0539399bea0296e8b8401145c62b6f85e9066af7e57b6151481b0d6d9c"},
]
[package.dependencies]
pytest = ">=3.6.0"
vcrpy = "*"
[[package]] [[package]]
name = "pytest-watcher" name = "pytest-watcher"
version = "0.2.6" version = "0.2.6"
@ -6828,7 +6844,7 @@ files = [
] ]
[package.dependencies] [package.dependencies]
greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"} greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and platform_machine == \"aarch64\" or python_version >= \"3\" and platform_machine == \"ppc64le\" or python_version >= \"3\" and platform_machine == \"x86_64\" or python_version >= \"3\" and platform_machine == \"amd64\" or python_version >= \"3\" and platform_machine == \"AMD64\" or python_version >= \"3\" and platform_machine == \"win32\" or python_version >= \"3\" and platform_machine == \"WIN32\""}
[package.extras] [package.extras]
aiomysql = ["aiomysql", "greenlet (!=0.4.17)"] aiomysql = ["aiomysql", "greenlet (!=0.4.17)"]
@ -7930,6 +7946,24 @@ decorator = ">=3.4.0"
[package.extras] [package.extras]
test = ["flake8 (>=2.4.0)", "isort (>=4.2.2)", "pytest (>=2.2.3)"] test = ["flake8 (>=2.4.0)", "isort (>=4.2.2)", "pytest (>=2.2.3)"]
[[package]]
name = "vcrpy"
version = "4.2.1"
description = "Automatically mock your HTTP interactions to simplify and speed up testing"
category = "dev"
optional = false
python-versions = ">=3.7"
files = [
{file = "vcrpy-4.2.1-py2.py3-none-any.whl", hash = "sha256:efac3e2e0b2af7686f83a266518180af7a048619b2f696e7bad9520f5e2eac09"},
{file = "vcrpy-4.2.1.tar.gz", hash = "sha256:7cd3e81a2c492e01c281f180bcc2a86b520b173d2b656cb5d89d99475423e013"},
]
[package.dependencies]
PyYAML = "*"
six = ">=1.5"
wrapt = "*"
yarl = "*"
[[package]] [[package]]
name = "wasabi" name = "wasabi"
version = "1.1.1" version = "1.1.1"
@ -8291,7 +8325,7 @@ name = "wrapt"
version = "1.15.0" version = "1.15.0"
description = "Module for decorators, wrappers and monkey patching." description = "Module for decorators, wrappers and monkey patching."
category = "main" category = "main"
optional = true optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
files = [ files = [
{file = "wrapt-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1"}, {file = "wrapt-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1"},
@ -8488,13 +8522,13 @@ docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker
testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"]
[extras] [extras]
all = ["anthropic", "cohere", "openai", "nlpcloud", "huggingface_hub", "jina", "manifest-ml", "elasticsearch", "opensearch-py", "google-search-results", "faiss-cpu", "sentence-transformers", "transformers", "spacy", "nltk", "wikipedia", "beautifulsoup4", "tiktoken", "torch", "jinja2", "pinecone-client", "weaviate-client", "redis", "google-api-python-client", "wolframalpha", "qdrant-client", "tensorflow-text", "pypdf", "networkx", "nomic", "aleph-alpha-client", "deeplake", "pgvector", "psycopg2-binary", "boto3", "pyowm"] all = ["aleph-alpha-client", "anthropic", "beautifulsoup4", "boto3", "cohere", "deeplake", "elasticsearch", "faiss-cpu", "google-api-python-client", "google-search-results", "huggingface_hub", "jina", "jinja2", "manifest-ml", "networkx", "nlpcloud", "nltk", "nomic", "openai", "opensearch-py", "pgvector", "pinecone-client", "psycopg2-binary", "pyowm", "pypdf", "qdrant-client", "redis", "sentence-transformers", "spacy", "tensorflow-text", "tiktoken", "torch", "transformers", "weaviate-client", "wikipedia", "wolframalpha"]
cohere = ["cohere"] cohere = ["cohere"]
llms = ["anthropic", "cohere", "openai", "nlpcloud", "huggingface_hub", "manifest-ml", "torch", "transformers"] llms = ["anthropic", "cohere", "huggingface_hub", "manifest-ml", "nlpcloud", "openai", "torch", "transformers"]
openai = ["openai"] openai = ["openai"]
qdrant = ["qdrant-client"] qdrant = ["qdrant-client"]
[metadata] [metadata]
lock-version = "2.0" lock-version = "2.0"
python-versions = ">=3.8.1,<4.0" python-versions = ">=3.8.1,<4.0"
content-hash = "6dc5842fe2ea7b5e284a1593ee69fdc3bf5589b698153df196d50dad6fd5d5f4" content-hash = "5327202e7caf3f6be668049d15cbe117b7d23bfcb4877fa40e24f795a0354ed3"

View File

@ -90,6 +90,8 @@ optional = true
[tool.poetry.group.test_integration.dependencies] [tool.poetry.group.test_integration.dependencies]
openai = "^0.27.4" openai = "^0.27.4"
elasticsearch = {extras = ["async"], version = "^8.6.2"} elasticsearch = {extras = ["async"], version = "^8.6.2"}
pytest-vcr = "^1.0.2"
wrapt = "^1.15.0"
[tool.poetry.group.lint.dependencies] [tool.poetry.group.lint.dependencies]
ruff = "^0.0.249" ruff = "^0.0.249"

57
tests/README.md Normal file
View File

@ -0,0 +1,57 @@
# Readme tests(draft)
## Integrations Tests
### Prepare
This repository contains functional tests for several search engines and databases. The
tests aim to verify the correct behavior of the engines and databases according to their
specifications and requirements.
To run some integration tests, such as tests located in
`tests/integration_tests/vectorstores/`, you will need to install the following
software:
- Docker
- Python 3.8.1 or later
We have optional group `test_integration` in the `pyproject.toml` file. This group
should contain dependencies for the integration tests and can be installed using the
command:
```bash
poetry install --with test_integration
```
Any new dependencies should be added by running:
```bash
poetry add some_new_deps --group "test_integration"
```
Before running any tests, you should start a specific Docker container that has all the
necessary dependencies installed. For instance, we use the `elasticsearch.yml` container
for `test_elasticsearch.py`:
```bash
cd tests/integration_tests/vectorstores/docker-compose
docker-compose -f elasticsearch.yml up
```
Additionally, it's important to note that some integration tests may require certain
environment variables to be set, such as `OPENAI_API_KEY`. Be sure to set any required
environment variables before running the tests to ensure they run correctly.
### Recording HTTP interactions with pytest-vcr
Some of the integration tests in this repository involve making HTTP requests to
external services. To prevent these requests from being made every time the tests are
run, we use pytest-vcr to record and replay HTTP interactions.
When running tests in a CI/CD pipeline, you may not want to modify the existing
cassettes. You can use the --vcr-record=none command-line option to disable recording
new cassettes. Here's an example:
```bash
pytest tests/integration_tests/vectorstores/test_elasticsearch.py --vcr-record=none
```

View File

@ -0,0 +1,32 @@
import os
import pytest
# Getting the absolute path of the current file's directory
ABS_PATH = os.path.dirname(os.path.abspath(__file__))
# This fixture returns a string containing the path to the cassette directory for the
# current module
@pytest.fixture(scope="module")
def vcr_cassette_dir(request: pytest.FixtureRequest) -> str:
return os.path.join(
os.path.dirname(request.module.__file__),
"cassettes",
os.path.basename(request.module.__file__).replace(".py", ""),
)
# This fixture returns a dictionary containing filter_headers options
# for replacing certain headers with dummy values during cassette playback
# Specifically, it replaces the authorization header with a dummy value to
# prevent sensitive data from being recorded in the cassette.
@pytest.fixture(scope="module")
def vcr_config() -> dict:
return {
"filter_headers": [
("authorization", "authorization-DUMMY"),
("X-OpenAI-Client-User-Agent", "X-OpenAI-Client-User-Agent-DUMMY"),
("User-Agent", "User-Agent-DUMMY"),
],
}

View File

@ -0,0 +1,582 @@
interactions:
- request:
body: '{"input": ["Sharks are a group of elasmobranch fish characterized by a
cartilaginous skeleton, five to seven gill slits on the sides of the head, and
pectoral fins that are not fused to the head. Modern sharks are classified within
the clade Selachimorpha (or Selachii) and are the sister group to the Batoidea
(rays and kin). Some sources extend the term \"shark\" as an informal category
including extinct members of Chondrichthyes (cartilaginous fish) with a shark-like
morphology, such as hybodonts and xenacanths. Shark-like chondrichthyans such
as Cladoselache and Doliodus first appeared in the Devonian Period (419-359
Ma), though some fossilized chondrichthyan-like scales are as old as the Late
Ordovician (458-444 Ma). The oldest modern sharks (selachians) are known from
the Early Jurassic, about 200 Ma.", "Sharks range in size from the small dwarf
lanternshark (Etmopterus perryi), a deep sea species that is only 17 centimetres
(6.7 in) in length, to the whale shark (Rhincodon typus), the largest fish in
the world, which reaches approximately 12 metres (40 ft) in length. They are
found in all seas and are common to depths up to 2,000 metres (6,600 ft). They
generally do not live in freshwater, although there are a few known exceptions,
such as the bull shark and the river shark, which can be found in both seawater
and freshwater.[3] Sharks have a covering of dermal denticles that protects
their skin from damage and parasites in addition to improving their fluid dynamics.
They have numerous sets of replaceable teeth.\n\nSeveral species are apex predators,
which are organisms that are at the top of their food chain. Select examples
include the tiger shark, blue shark, great white shark, mako shark, thresher
shark, and hammerhead shark.", "Sharks are caught by humans for shark meat or
shark fin soup. Many shark populations are threatened by human activities. Since
1970, shark populations have been reduced by 71%, mostly from overfishing."],
"encoding_format": "base64"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '2001'
Content-Type:
- application/json
User-Agent:
- User-Agent-DUMMY
X-OpenAI-Client-User-Agent:
- X-OpenAI-Client-User-Agent-DUMMY
authorization:
- authorization-DUMMY
method: POST
uri: https://api.openai.com/v1/engines/text-embedding-ada-002/embeddings
response:
body:
string: !!binary |
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
rf/vv/7tfwMAAP//AwAqDwRBiWEAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 7b3ba19cfce39235-FRA
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 06 Apr 2023 17:08:10 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
access-control-allow-origin:
- '*'
alt-svc:
- h3=":443"; ma=86400, h3-29=":443"; ma=86400
openai-organization:
- own-45h3iv
openai-processing-ms:
- '247'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=15724800; includeSubDomains
x-ratelimit-limit-requests:
- '3000'
x-ratelimit-remaining-requests:
- '2999'
x-ratelimit-reset-requests:
- 20ms
x-request-id:
- ddfb63c63597d48ade18afb82091b9f5
status:
code: 200
message: OK
- request:
body: '{"input": ["sharks"], "encoding_format": "base64"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '50'
Content-Type:
- application/json
User-Agent:
- User-Agent-DUMMY
X-OpenAI-Client-User-Agent:
- X-OpenAI-Client-User-Agent-DUMMY
authorization:
- authorization-DUMMY
method: POST
uri: https://api.openai.com/v1/engines/text-embedding-ada-002/embeddings
response:
body:
string: !!binary |
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
H9bhIAAA
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 7b3ba1a41cc19235-FRA
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 06 Apr 2023 17:08:12 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
access-control-allow-origin:
- '*'
alt-svc:
- h3=":443"; ma=86400, h3-29=":443"; ma=86400
openai-organization:
- own-45h3iv
openai-processing-ms:
- '737'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=15724800; includeSubDomains
x-ratelimit-limit-requests:
- '3000'
x-ratelimit-remaining-requests:
- '2999'
x-ratelimit-reset-requests:
- 20ms
x-request-id:
- f2f02f88b1097ce728e4b79198958fde
status:
code: 200
message: OK
version: 1

View File

@ -0,0 +1,582 @@
interactions:
- request:
body: '{"input": ["Sharks are a group of elasmobranch fish characterized by a
cartilaginous skeleton, five to seven gill slits on the sides of the head, and
pectoral fins that are not fused to the head. Modern sharks are classified within
the clade Selachimorpha (or Selachii) and are the sister group to the Batoidea
(rays and kin). Some sources extend the term \"shark\" as an informal category
including extinct members of Chondrichthyes (cartilaginous fish) with a shark-like
morphology, such as hybodonts and xenacanths. Shark-like chondrichthyans such
as Cladoselache and Doliodus first appeared in the Devonian Period (419-359
Ma), though some fossilized chondrichthyan-like scales are as old as the Late
Ordovician (458-444 Ma). The oldest modern sharks (selachians) are known from
the Early Jurassic, about 200 Ma.", "Sharks range in size from the small dwarf
lanternshark (Etmopterus perryi), a deep sea species that is only 17 centimetres
(6.7 in) in length, to the whale shark (Rhincodon typus), the largest fish in
the world, which reaches approximately 12 metres (40 ft) in length. They are
found in all seas and are common to depths up to 2,000 metres (6,600 ft). They
generally do not live in freshwater, although there are a few known exceptions,
such as the bull shark and the river shark, which can be found in both seawater
and freshwater.[3] Sharks have a covering of dermal denticles that protects
their skin from damage and parasites in addition to improving their fluid dynamics.
They have numerous sets of replaceable teeth.\n\nSeveral species are apex predators,
which are organisms that are at the top of their food chain. Select examples
include the tiger shark, blue shark, great white shark, mako shark, thresher
shark, and hammerhead shark.", "Sharks are caught by humans for shark meat or
shark fin soup. Many shark populations are threatened by human activities. Since
1970, shark populations have been reduced by 71%, mostly from overfishing."],
"encoding_format": "base64"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '2001'
Content-Type:
- application/json
User-Agent:
- User-Agent-DUMMY
X-OpenAI-Client-User-Agent:
- X-OpenAI-Client-User-Agent-DUMMY
authorization:
- authorization-DUMMY
method: POST
uri: https://api.openai.com/v1/engines/text-embedding-ada-002/embeddings
response:
body:
string: !!binary |
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
39b/91//9r8BAAD//wMAKg8EQYlhAAA=
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 7b3ba16d5d0f36dd-FRA
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 06 Apr 2023 17:08:04 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
access-control-allow-origin:
- '*'
alt-svc:
- h3=":443"; ma=86400, h3-29=":443"; ma=86400
openai-organization:
- own-45h3iv
openai-processing-ms:
- '1460'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=15724800; includeSubDomains
x-ratelimit-limit-requests:
- '3000'
x-ratelimit-remaining-requests:
- '2999'
x-ratelimit-reset-requests:
- 20ms
x-request-id:
- 30e07233378822f34dc05079acb3fdd0
status:
code: 200
message: OK
- request:
body: '{"input": ["sharks"], "encoding_format": "base64"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '50'
Content-Type:
- application/json
User-Agent:
- User-Agent-DUMMY
X-OpenAI-Client-User-Agent:
- X-OpenAI-Client-User-Agent-DUMMY
authorization:
- authorization-DUMMY
method: POST
uri: https://api.openai.com/v1/engines/text-embedding-ada-002/embeddings
response:
body:
string: !!binary |
H4sIAAAAAAAAA1SaWw+ySrel779fsbJu6S8iIjVZdwjIWUpBETudDigiCCKHKqB29n/v4Luzu/vG
CyBI6jDmM8as//jXX3/93aRldh/+/uevv6uiH/7+H8u1RzIkf//z1//8119//fXXf/x+/78nszrN
Ho/ik/8e/90sPo9s+vufv/j/vvJ/H/rnr79terqSq58WKUse2wC9r2DSe42qdLrIJx6yAGx6Qncr
pMfDLpJSbVNR97iuGBsu7RnQJa78dUDXLiOG7aF2+97j3cSmckJwMdCjQwI26P3ojkmCAthXQ4dd
fmYhqz9bH/pKvfpM31wQq6r1CC7yc2pKiE8nt+QyUNcph/GJKO6bpI8M6CePqBF81W7a7DwVJeE1
JGPqHNIpzo897LLzGh92s43GRzXkyJq/sS9i0rntF14ZrKxYoF7s3dOBIqVGyRVX1Lw8+HK+f8dY
rrX45pe2bLkzVboZ7t9DQDXO+bDPZn+uUR/fZupfQAn5sVZVmGtHw/o5M9HMZbsEwqr6YNcLXuFY
70Vuq7h24hdeG2nscJIlVIgN56+8ZmBje+w8UKukJOIqNkK2jC+o1sRRo4rVbuhxFMF24Ctsvqqb
RmJdsOB72TKqZYfJnbSL2YIy8CX2hMZGTG1QC28xu2H9cM66+VOkI+r7GWGjiD7avFltY9S1xhVr
VOA6cnGbO8jlziZStKIa69C5hhOcPXp6O7rGLC64w43jCFXk+oRYbtccxN0UUqvkzm4bNjRAPTIQ
1v31iIZyI0Tw0DrFF0uO18Y30iPZNA8GthvOQYKnvRoY9tr8Zzymdxu3wITviPXt7cbY3b/wIBnm
nZpF14WzldEzKjA6Eqk9sXI4HKpIYs5u9MnLUEI+QSPIGIsTvldyzib8QSpge91gF/GkI/vLWMDp
8LpQ1WsFd0SfmEdz2l9wbOz5lAVEJzDgTKf2F2jIVu4VYGUlAt7vDbNjnFoLkPtx4gvLfPBm+NKh
Qo5MBPnQdaOQdBYKNoFH2AN7ZU9aoQbJCkK6+3YHbbKDsw9F7PTYyh6uO/U4O4OVPw3suh5hM0JO
DmfPVn1h1Rfh92RxmRTEnIfVXS64bRPMDayFp0vW/Kiyzflz7sE5VFd8UE7XbnySqJG6js1kEpOD
O89qL8K2+xK8Q/cmJNLW1EEKyA57R2/f9c6l8IGX6YPuzWqtTW+F5lL59G54p5kS+wZJqK7Kr3uk
iis+y5lspDe6FZudP5oXpE2WZIuge8/O30ofMZw4stZB7lcrAt8iR6zoc136KDue+v0xT9m1OwXo
49wNvzlhPu0vXJ+guVUv+Le/57XxvcMx7iR/ErYlm9KvmcNh0nNiVoPBxh35GnDdJJRUerll4ydz
fahvdxkr4r5BI5ZaB7bmycFHU2xQX72ZD0l4CfHjovshScc8loXSdP/MH2viywjrJFLJBvOPjupB
m6N1e31gnD9y98vTV//bz37zfomIXvKeSFe/25EpuFnlbFw4H0Uu96CejPfhqEb3AkhDdIzvlzmc
OC7zJS0/l9jzPlU3706IA+fwufqi8nbD8eO3BqgnLcFmT2/a+FsvV5Y/8KM65+UkR4UAn76JKTZW
ESLye4rlbdqE+HF82WjaXzUdiOp86e5lWWXtzgcFBQXSqGsf92zaaUMMOVIT6un6y2VEaFRUy+sX
1hjXp+ND//BIMDgV73JVSOfXJU+AHvTGnztD65b16kms77dUOxSWNj0fBSenx8zxeRm4lKq3JIcx
FSV/nLJDyMza8uG4DiVfCL5qOUZHW4FNyos0ZscdY09FFlAcliLdCZHgtnjIHNRs55but+EnnNa1
cNw+L+2AzU2muoIncRYYk1X4cFAhZNTwJbTZz2fsCgTSTx4ECVT626TJKGKXidHWAeypT2wd5sIl
/OF2h0gKRSLtfMamLKU59AbO/XnjW9p8SJkITtgB6WZ3g0Zu9w5QWrR36h29qhuPAWToVtOQ6oeN
F34L5SXAc2IC4Qm+IZLrLg95TxJqB22L5uvD6WGcs+i3P9x+t85muIaKS23yZGyi88WBGb8/1GZV
rTEmFQEcrGgmtdiaWn9631R0V7uNLwy56dY537bA78yM4u4ZaHNXH88oLZo79teRHU5MxgnqBu6L
7Wym6azrKQf87bylFiauNtaXRAe04gNqll/KOiXDuvTgW5sMfRQwEjw5C6y5i/FhvbI7djm5bygI
PhJxw+qQ+WWQ/fSPursydqejcohAfdgmedgSCWf6+t4Rerg2Vj7BxCbrJUeANC/E3pm2LmW3/g3U
VHT6OD1JSFZ7EKA4Bwk2jiqnzVpvN4At60DvynOn9aKLCfrVf7h+N+X0jZQGWFJ88F63Sm1+VXaO
xjpq/FGdhY4xx72DfPEV6itu5ZJa7EVIxUE50HQeyomGgfSrL4R577KjAttwqLmaL7KxL0dtstp8
hp296n2YTIXN9OhJYHn6y0ei9NJoIIwWiHIU4kNSbcJhfq8daTTLCWsrywsJf5/fsiWlQECD0J2i
S2+hebPJ/O/82ZVT2Tx8OPpUww65vdLOO42+7AjXPbbzMC5/6xMVxTvBfiS9UfM1ZwNx+z7Ah9Sq
XJqJXgPDpfhSPy+DbkzcxEHPQ3oiW95qUcehyQC+PI1UN5ysHDVFS0DvggJ70sFG86qecxi5WsO2
PL060q2nO/Cn94V6Tkm6eXpRZ7voBbbt9wsRKfEEeHRbgS7j7c5kM9dA5VrCiiG9w3GucY9uwDaE
0/Zz17+9hoM8vp78Wbs/tTnmlOSPHmFjF6TTvJ8l0GLT9OelfmVqGRdwfx5TbHY+Ziy7Ghw03b2l
Fj+57qIPvHTIP1/CQZx208u8CTCenYhI+0lMycexC/Sd85iq2q5Jx5NEeeRkho+1427NyEfKI9kt
5D1VgmfqTtL528srA6+wu7qRrgY+yIFF7QW7rbvTxq94lOStFoskF/NV2e+34VlyYYuw83Kdcmqr
z31zV7g79vGIylmabzEID6Wm9sq5o8l9WCN6dsOJWlptlOPF39fQQfDFXo32IV/vRUA763jCjnAT
tZE+jiKs28sD+9o+6NiNdxJo5ezqT0u97Ye3IsEpUzx/vcFjSn96ybW6QF3aO5ogbKwjgHCzsbJ8
L/UaU4E+Ile6v0zHkjjfUIIt2zrY0K48Y/UmOAP3WqfU+cx7xh/El4L8g3egh+m+d8m+NyNophLj
gyATlzqb9i7Fb5WSQb9V6ehmaYS6Ab5U1e5Pd+yLQwbDCiKsvp9NOqoGStDHP8fUVFoZjVaJJbg1
ouPTl4DS7tA6GaTcbFPPel5Z/747BkKmUZEtR2uNhoLMo7m2NJym9502epbqATS1Qg8V3aRTbzUt
2FX0olZb0Y5+k5sP8Ul4EAgs0lF09HnYpzOPvbV57ZqJOx+h7jpMJuOku2MZxgDC1qX+lj7EdAhL
z5FycVNiD38VxM94FP/wtLFt3HLefpsj0rdmR1a2NrBJfXcGANe8ySt7DdrkRfH82294Z5ze2nA6
vURZsycTu9P4cvsdeeno4shnIjvizIYhl0SQ5UzwP9a1K//o3U1xRbJ2h4LRk3E7w3PUUxrfb+eQ
/Pi2qhnvo7xow6lus0gKsteWKlY6dOMrUQAMERnU8e9OyUJBFn77m1rCcHbpUX9IyN2cfV/AutpN
ZlOdUZmjNd2dxShlq7OboPeVM/GvnjEI1EDeaNWD9HILLiUDX0O5bUy6LxPOnbzoOMtLfSHsbGul
8NOTXd+usfU2Co00DvaQ7U97rCjC0LXV7hgjdxP5/lQYB43NuyT68RzW7fOHMRfzIzzwPGDHOQPr
9+NHhC88faw6WlLS7zbMII12G7p3PmM3rGsuQH3UX4nAm0XZjFEuoe8FMcI+YeKOW/kFcnE+JmQU
82fJXCVtYdFfbO0KjJj3up1R1ksrqjW3vqMlGBIM9PFceGjnTpugqX9+DuNBQeGyXji01Cfqye1d
oxaXZGgVEQG76f3lzrfNMf7Dg+XJbFzWluoZrZOzSu8rMqNp5x0F+SNxMfV2j6ocx9pRgRtka+H3
yJ2uA5eAZXkYH6TC10YYdyDPj9voz6qmMSFUmAjRoRPJpB+GdNoUdo9+vLvZj6M7i583D3H4ErFf
fd+ovQSRA0HNLv5bfpndKPKiAMnzqVAvi3M2KV1ooKW+Ln6yTtnGV1TZyXSfZhCni56dEnD9OvdX
lzB3J1vCNUzbQqPW6NflXGS3AvihV/HFNrJw2AR5DXvBK6iW9xljVSXP8DyNKdVvOy9tf9+/f6tH
epAK4nblOS3Q4Vj7/iqwIzQFX3Ck5mC11GQRH052Oc4yf7l/yLC9I9Rv9ECFxW+Q6V0liDSO6UNh
ftdUaRhyR8ubDImaqo4PON2E804NBDhENqJ+9dXR5pcfLPxOVZFOYfs4lQJEkFHC3+s+JQsfoU6M
r6SgLym8FXTvQVXpN3ohtpnOu9dDBzS0yjLzL8Z2uVNAVRm3P35t8/N/n/b5wvbFjrvJVpkOxyp4
0v23LhAjA9Rgo9se+5OPyrEv9tnP/xOoklDb+DN7o5/frUnWdeNhlRGk+hsTa/NDcom9ywupu1U5
NdhudJf7vXTKVI8aDpzZ6K5u6o//6KO0UrT4L0laxh8Hi5+doVhzwK+kM1XUOeomnn4JeOb166PW
3bnzrWICEpOvQ9W508rN3X/w4uIPqeXWckjTd83BzXk7ZOsXD/eP382OU0B1a0pcduKh/+MnvTN1
XBoVjQOTMkY4C65KukaucITLKx/pIXgEbJQucPzlBWQ7li0jJBbPsOQ//llML+EUzlWA5E0ckDH6
NGxWtt8WsfMz868rrXBrT+IcuN3H/+Jd4VXZBTroWY73HH8Mn9nV52D3viUUr87vdHpvtyOS4pD4
qxSvUM+d9vGf9eCkBet67GgRMsStQffiRUWkkNMZhTuskUZa7xAxsFWgqp54ukufp4766n3engP8
IetiV7BJFw5nNLs4I3yINI2fzcMdhXaWUXc6hOkInyxH9iZnf/IoVupSDDEEDtWsVdm1sS44kDn9
gK1olFN2aNU75HV38ufTaKWMOdodCXIuYrVIT+kIq85Ap9x7YrcxnZAs47FVT7uEDBedpDXcrSOY
/qolqxPJ3U58EP43Xj7q7Kpb+DxDt2ND/U3AGYjNu+CMusvg49cpfbvjwm+//YCP9m12F54DOJ+T
DLv35F4u9SiStELjsLP4J3a+ordkWAlPF54q2yoPGqjBMSiubys0rcaxgFS1HKzVopaulXTL/fw+
Nr+BgQR1nlqQmrHCPlsr2vzZZQZa1ovP7ifLHd93R4ep8zUfslhB8+se6fAqR2vRc4p++Rlw9vu9
6IvvtovfQvVnlvHuXUmsvahrBRY9XerLHY0LT0Nn3nzs0Bk6WupzAqu1Iiy8eGF/9AfsycYWRK47
Pj85yFlcCmR7rM/uxIQbgXpUb9h3D1d3SIORoNTbK/6rGZpyzr6cgZJL7uBY9OWU3d7fI4T7t0fT
2d2wvsiFFgo+XPsvkE8daQcrgi/X7Glgvns0yKZN0CcOMf19zxgddwps7fsOPyvlXbI350TgDUj/
Uw/mWnyLELXBwz+Kewut/Si6gyX2L5/EKdGYZ+sjuPVm2RYx6ua3pcSANvXGl54mK1kvxwoYinvz
xx/P1/uRA5LEur+FDqfrm1hwsMq7AR9syU8n4Tg40hbnFcV99e7Y9tkeYdzzkb+99bLW0MdRksVC
rKl+zUuNNqfGAIQ4BbvV3mfsXYk6LPkOtb6fTus9oXpL52PhETg5rTvla9lDAnurZFryh847iT4c
N9lEbVWuQ8qpNQ8//l3yA0TM67ZFy31fsJUOzb/6d1Mjih13jTXmPi8S+vG3Q68VG4RmS9Dir/2J
epHWaVM/wo/35+OsoY3X4GW9pKPPFj7o07N2hCoab/SQWnttqNvsjET9XVN90asZCpmDiCcuPWTD
3uWNU9UCwmeFet9CQZu5iBXYfiHE53K/RaMzQAZkbpCP7rKTIr9M7sDZ9RurQzWF+VeMxV/+hG3J
25Uboxf9P/VhCm5NOd+M7RsWvfKlIxJTFs8GB+Ywv7CZcI9u+jDzDuNLfmLlGzWI3IxtjYxjc8T3
fhW64zWWLETu5pNsE9yiYfG76KvRF4FnVIVsEl8OyAkbfOne1O407MQWbjBtSGcY93K+pLs3WunF
Gy/5BWoW/YTcwyWZzqIQzo12KmD76kWcGgaU1OrXEvSBsF/qWeJOrB5rYOdHRsTJ67R5jDkV6t2h
8NkD9x17PKUY6lN/879j6TBeH1sPNjtJxf5d8d2e272P8Muf9MK8pGz6WipwuaOQ5nYV/+Q1wD07
i+qxZiLh+nAIfFSvW3iY17qib3SUCOqdYls7MLY6a4mklrjHGNF3OMfrMwevVFtj9fXwEPNOo/fr
P2B/Z9ul8ERBCwu/ECi3NlvyUg+s5tDS3TaeOtacGv2nl2TxF+G8P+wNWPTgT57VL3k++umHcjOE
rp5e1BK9Xbj3Z/ZtXLrwMVryHSI4cEZTcst7+fVpE5+/rUbWj1EuygMYOnbZydGEmLMS+EDHCNc5
AxvS4sSDQl+cf1a+l44V7DLCwcM66YSw6v7w8ZJXEOqaern+rZcjez+pXrSlRkSrqFG7rffU4R/U
Xd+ltwGZcXn700HQtc2DpgWU+txjZcfPy3jmOhwdfqJL/hayOBUtYFmypUrhrbrpQDpVWvpFOE5E
1yVLvoB40/lQK4bCnTY7XYHh0yPsfnYb1Np5McN9FQp+/uO7IK3ev7yeOi+3LScmmzGopl76bH4k
2hxOAQFNCm8+dzgRdzpwngOPMVQIhy9vNOofYYbKaTqc7exvN7/umQ4SL4VYi20ppMv8y0zoRrJ5
Gl3am+HLQPJ0sTFe/N4YB6rz4zuy6enWHbQHMuCm2CI2zGfxX/6iw80Xq29ppf2pd/c0tql7l9uQ
vK/ffPv6NAk2MS+X7GSczkD6d4T1rFinbH0eVXi0fopx+xq6cctzBZKtT4oP693e3eTqFEjnuh6p
u+8qRge+r8HwToa/DgMVkdvmmMhrrq/pz++y+cjucFSriLreIGp0/OhvgD4L/KK8rVEHk1egcPY8
at/6h0Z//LboPd4n57XLxo/3Rp9zImMltmaXvlKtANLX0cLX13A6qcqI/vC0Xpw6wbLiHBb98Cf/
tChtvAJY5/EH74vVJ2wjXcyAP9UXfMCKUvZm6fjgpOiKcYqfCx/zb4hceNBfP24667YIVSCavuTF
IRuPE9dL7zow8a7UT+VI+1mRutEB/7OVKaOdI4/otYaEKg//HTJ7/VF//UCyz9GxJOr2E4GmKqUv
b1BQTo9ASKRsXr2pfs4+bBzXpQVLPw/v/FPC5v1FLH5+i3pzftfm9/VVyD//L14F3C39Q/Lrl/iS
ca7dHsmfFrZgVdhkW1VbC5QmKGrMmu7doUA/HgDZEBX8WO8qjW4eXwu8QzxTHPVpOIWlZ0F02Z4X
v5mmI/9KLfSZe/lPHs6CrHwDyysPL/rlstSPHejVi0/GjZygXt0kPsJi88R2HO7QwuMExbJcEbTk
4dP3Lpxh8Qt4zx8ubq89D+2f+XTvCZRTtj8SdDlpWx8tedIk7a0aquNwJNLTDLvp7hyO6MMJrS/o
YubOUYoDacmLcEaHIJ1H+yyB4JWUiLeryKYnVB46i5P6px41d8Q16Oy5KtVSoqU01roaefvWp/7O
/pa//AcuB8vF6Vasuo5zkwA6Mbli7WQ22vzLtzZEc6hHtS+a/CjLoKizHluVXpezXt0aCOWN6r/4
YJXSjW8pMAXQ+KvZGErWWNBCej7f/e30oikRZJmDKWeTPyROXpLBTGc0g/f57S80XpswQDendjCu
b0/EcLg9Q75xLLKqYeiG4XQbf/1IAobSaot/j5FBOIzdc1KhaeazAC39M/x73/QIuBhlRxbQ3cLX
rCZEQtfKe9BrUhqMXbtbADJ1BFJn08d9pcHYy4p5snCEn7d0kljHgcSLIdWK8VIO28Jc+jFGQ93n
7uX+8kX0iU+Y2pL36n7vQ9DfA7ysP8YET69R/FYotU6YD+tbFPQgrjTib1aauvSb1xKs1qpAdYK3
jFkH1kiWdAPqe+G37B/yrMPfv1MB//mvv/76X78TBnXzyKrlYMCQTcO///uowL+TR/Jvnhf+TYU/
JxFIn+TZ3//81yGEv79dU3+H/z007+zT//3PX8Kf0wZ/D82QVP/P5X8t//Wf//o/AAAA//8DAL+P
H9bhIAAA
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 7b3ba1890f5c36dd-FRA
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 06 Apr 2023 17:08:10 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
access-control-allow-origin:
- '*'
alt-svc:
- h3=":443"; ma=86400, h3-29=":443"; ma=86400
openai-organization:
- own-45h3iv
openai-processing-ms:
- '2771'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=15724800; includeSubDomains
x-ratelimit-limit-requests:
- '3000'
x-ratelimit-remaining-requests:
- '2999'
x-ratelimit-reset-requests:
- 20ms
x-request-id:
- 793631cd04d7eb0ba0e044194f2ab253
status:
code: 200
message: OK
version: 1

View File

@ -0,0 +1,583 @@
interactions:
- request:
body: '{"input": ["Sharks are a group of elasmobranch fish characterized by a
cartilaginous skeleton, five to seven gill slits on the sides of the head, and
pectoral fins that are not fused to the head. Modern sharks are classified within
the clade Selachimorpha (or Selachii) and are the sister group to the Batoidea
(rays and kin). Some sources extend the term \"shark\" as an informal category
including extinct members of Chondrichthyes (cartilaginous fish) with a shark-like
morphology, such as hybodonts and xenacanths. Shark-like chondrichthyans such
as Cladoselache and Doliodus first appeared in the Devonian Period (419-359
Ma), though some fossilized chondrichthyan-like scales are as old as the Late
Ordovician (458-444 Ma). The oldest modern sharks (selachians) are known from
the Early Jurassic, about 200 Ma.", "Sharks range in size from the small dwarf
lanternshark (Etmopterus perryi), a deep sea species that is only 17 centimetres
(6.7 in) in length, to the whale shark (Rhincodon typus), the largest fish in
the world, which reaches approximately 12 metres (40 ft) in length. They are
found in all seas and are common to depths up to 2,000 metres (6,600 ft). They
generally do not live in freshwater, although there are a few known exceptions,
such as the bull shark and the river shark, which can be found in both seawater
and freshwater.[3] Sharks have a covering of dermal denticles that protects
their skin from damage and parasites in addition to improving their fluid dynamics.
They have numerous sets of replaceable teeth.\n\nSeveral species are apex predators,
which are organisms that are at the top of their food chain. Select examples
include the tiger shark, blue shark, great white shark, mako shark, thresher
shark, and hammerhead shark.", "Sharks are caught by humans for shark meat or
shark fin soup. Many shark populations are threatened by human activities. Since
1970, shark populations have been reduced by 71%, mostly from overfishing."],
"encoding_format": "base64"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '2001'
Content-Type:
- application/json
User-Agent:
- User-Agent-DUMMY
X-OpenAI-Client-User-Agent:
- X-OpenAI-Client-User-Agent-DUMMY
authorization:
- authorization-DUMMY
method: POST
uri: https://api.openai.com/v1/engines/text-embedding-ada-002/embeddings
response:
body:
string: !!binary |
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
QYlhAAA=
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 7b3ba14c2fb89a1b-FRA
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 06 Apr 2023 17:08:00 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
access-control-allow-origin:
- '*'
alt-svc:
- h3=":443"; ma=86400, h3-29=":443"; ma=86400
openai-organization:
- own-45h3iv
openai-processing-ms:
- '2691'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=15724800; includeSubDomains
x-ratelimit-limit-requests:
- '3000'
x-ratelimit-remaining-requests:
- '2999'
x-ratelimit-reset-requests:
- 20ms
x-request-id:
- ac8a685d51289f34fb0f9ec06a76422a
status:
code: 200
message: OK
- request:
body: '{"input": ["sharks"], "encoding_format": "base64"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '50'
Content-Type:
- application/json
User-Agent:
- User-Agent-DUMMY
X-OpenAI-Client-User-Agent:
- X-OpenAI-Client-User-Agent-DUMMY
authorization:
- authorization-DUMMY
method: POST
uri: https://api.openai.com/v1/engines/text-embedding-ada-002/embeddings
response:
body:
string: !!binary |
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
H9bhIAAA
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 7b3ba1631ffd9a1b-FRA
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 06 Apr 2023 17:08:01 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
access-control-allow-origin:
- '*'
alt-svc:
- h3=":443"; ma=86400, h3-29=":443"; ma=86400
openai-organization:
- own-45h3iv
openai-processing-ms:
- '544'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=15724800; includeSubDomains
x-ratelimit-limit-requests:
- '3000'
x-ratelimit-remaining-requests:
- '2999'
x-ratelimit-reset-requests:
- 20ms
x-request-id:
- dffc2a7329677f16a012ef37d5c3e09e
status:
code: 200
message: OK
version: 1

View File

@ -0,0 +1,25 @@
import os
from typing import Generator, List
import pytest
from langchain.document_loaders import TextLoader
from langchain.schema import Document
from langchain.text_splitter import CharacterTextSplitter
# Define a fixture that yields a generator object returning a list of documents
@pytest.fixture(scope="module")
def documents() -> Generator[List[Document], None, None]:
"""Return a generator that yields a list of documents."""
# Create a CharacterTextSplitter object for splitting the documents into chunks
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
# Load the documents from a file located in the fixtures directory
documents = TextLoader(
os.path.join(os.path.dirname(__file__), "fixtures", "sharks.txt")
).load()
# Yield the documents split into chunks
yield text_splitter.split_documents(documents)

View File

@ -1,6 +1,7 @@
"""Test ElasticSearch functionality.""" """Test ElasticSearch functionality."""
import logging import logging
import os import os
import uuid
from typing import Generator, List, Union from typing import Generator, List, Union
import pytest import pytest
@ -76,6 +77,7 @@ class TestElasticsearch:
output = docsearch.similarity_search("foo", k=1) output = docsearch.similarity_search("foo", k=1)
assert output == [Document(page_content="foo", metadata={"page": 0})] assert output == [Document(page_content="foo", metadata={"page": 0})]
@pytest.mark.vcr(ignore_localhost=True)
def test_default_index_from_documents( def test_default_index_from_documents(
self, documents: List[Document], openai_api_key: str, elasticsearch_url: str self, documents: List[Document], openai_api_key: str, elasticsearch_url: str
) -> None: ) -> None:
@ -94,44 +96,55 @@ class TestElasticsearch:
print(search_result) print(search_result)
assert len(search_result) != 0 assert len(search_result) != 0
@pytest.mark.vcr(ignore_localhost=True)
def test_custom_index_from_documents( def test_custom_index_from_documents(
self, documents: List[Document], openai_api_key: str, elasticsearch_url: str self, documents: List[Document], openai_api_key: str, elasticsearch_url: str
) -> None: ) -> None:
"""This test checks the construction of a custom """This test checks the construction of a custom
ElasticSearch index using the 'from_documents'.""" ElasticSearch index using the 'from_documents'."""
index_name = f"custom_index_{uuid.uuid4().hex}"
embedding = OpenAIEmbeddings(openai_api_key=openai_api_key) embedding = OpenAIEmbeddings(openai_api_key=openai_api_key)
elastic_vector_search = ElasticVectorSearch.from_documents( elastic_vector_search = ElasticVectorSearch.from_documents(
documents=documents, documents=documents,
embedding=embedding, embedding=embedding,
elasticsearch_url=elasticsearch_url, elasticsearch_url=elasticsearch_url,
index_name="custom_index", index_name=index_name,
) )
es = Elasticsearch(hosts=elasticsearch_url) es = Elasticsearch(hosts=elasticsearch_url)
index_names = es.indices.get(index="_all").keys() index_names = es.indices.get(index="_all").keys()
assert "custom_index" in index_names assert index_name in index_names
search_result = elastic_vector_search.similarity_search("sharks") search_result = elastic_vector_search.similarity_search("sharks")
print(search_result) print(search_result)
assert len(search_result) != 0 assert len(search_result) != 0
@pytest.mark.vcr(ignore_localhost=True)
def test_custom_index_add_documents( def test_custom_index_add_documents(
self, documents: List[Document], openai_api_key: str, elasticsearch_url: str self, documents: List[Document], openai_api_key: str, elasticsearch_url: str
) -> None: ) -> None:
"""This test checks the construction of a custom """This test checks the construction of a custom
ElasticSearch index using the 'add_documents'.""" ElasticSearch index using the 'add_documents'."""
index_name = f"custom_index_{uuid.uuid4().hex}"
embedding = OpenAIEmbeddings(openai_api_key=openai_api_key) embedding = OpenAIEmbeddings(openai_api_key=openai_api_key)
elastic_vector_search = ElasticVectorSearch( elastic_vector_search = ElasticVectorSearch(
embedding=embedding, embedding=embedding,
elasticsearch_url=elasticsearch_url, elasticsearch_url=elasticsearch_url,
index_name="custom_index", index_name=index_name,
) )
es = Elasticsearch(hosts=elasticsearch_url) es = Elasticsearch(hosts=elasticsearch_url)
index_names = es.indices.get(index="_all").keys()
assert "custom_index" in index_names
elastic_vector_search.add_documents(documents) elastic_vector_search.add_documents(documents)
index_names = es.indices.get(index="_all").keys()
assert index_name in index_names
search_result = elastic_vector_search.similarity_search("sharks") search_result = elastic_vector_search.similarity_search("sharks")
print(search_result) print(search_result)
assert len(search_result) != 0 assert len(search_result) != 0
def test_custom_index_add_documents_to_exists_store(self) -> None:
# TODO: implement it
pass