Harrison/weaviate (#3494)

Co-authored-by: Nick Rubell <nick@rubell.com>
pull/3503/head
Harrison Chase 1 year ago committed by GitHub
parent ba7a5ac9d7
commit 408a0183cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -54,22 +54,22 @@ class WeaviateHybridSearchRetriever(BaseRetriever):
with self._client.batch as batch:
ids = []
for i, doc in enumerate(docs):
data_properties = {
self._text_key: doc.page_content,
}
metadata = doc.metadata or {}
data_properties = {self._text_key: doc.page_content, **metadata}
_id = get_valid_uuid(uuid4())
batch.add_data_object(data_properties, self._index_name, _id)
ids.append(_id)
return ids
def get_relevant_documents(self, query: str) -> List[Document]:
def get_relevant_documents(
self, query: str, where_filter: Optional[Dict[str, object]] = None
) -> List[Document]:
"""Look up similar documents in Weaviate."""
content: Dict[str, Any] = {"concepts": [query]}
query_obj = self._client.query.get(self._index_name, self._query_attrs)
if where_filter:
query_obj = query_obj.with_where(where_filter)
result = (
query_obj.with_hybrid(content, alpha=self.alpha).with_limit(self.k).do()
)
result = query_obj.with_hybrid(query, alpha=self.alpha).with_limit(self.k).do()
if "errors" in result:
raise ValueError(f"Error during query: {result['errors']}")
@ -80,5 +80,7 @@ class WeaviateHybridSearchRetriever(BaseRetriever):
docs.append(Document(page_content=text, metadata=res))
return docs
async def aget_relevant_documents(self, query: str) -> List[Document]:
async def aget_relevant_documents(
self, query: str, where_filter: Optional[Dict[str, object]] = None
) -> List[Document]:
raise NotImplementedError

@ -139,6 +139,8 @@ class Weaviate(VectorStore):
if kwargs.get("search_distance"):
content["certainty"] = kwargs.get("search_distance")
query_obj = self._client.query.get(self._index_name, self._query_attrs)
if kwargs.get("where_filter"):
query_obj = query_obj.with_where(kwargs.get("where_filter"))
result = query_obj.with_near_text(content).with_limit(k).do()
if "errors" in result:
raise ValueError(f"Error during query: {result['errors']}")
@ -154,6 +156,8 @@ class Weaviate(VectorStore):
"""Look up similar documents by embedding vector in Weaviate."""
vector = {"vector": embedding}
query_obj = self._client.query.get(self._index_name, self._query_attrs)
if kwargs.get("where_filter"):
query_obj = query_obj.with_where(kwargs.get("where_filter"))
result = query_obj.with_near_vector(vector).with_limit(k).do()
if "errors" in result:
raise ValueError(f"Error during query: {result['errors']}")
@ -226,6 +230,8 @@ class Weaviate(VectorStore):
"""
vector = {"vector": embedding}
query_obj = self._client.query.get(self._index_name, self._query_attrs)
if kwargs.get("where_filter"):
query_obj = query_obj.with_where(kwargs.get("where_filter"))
results = (
query_obj.with_additional("vector")
.with_near_vector(vector)

@ -0,0 +1,87 @@
"""Test Weaviate functionality."""
import logging
import os
from typing import Generator, Union
from uuid import uuid4
import pytest
from weaviate import Client
from langchain.docstore.document import Document
from langchain.retrievers.weaviate_hybrid_search import WeaviateHybridSearchRetriever
logging.basicConfig(level=logging.DEBUG)
"""
cd tests/integration_tests/vectorstores/docker-compose
docker compose -f weaviate.yml up
"""
class TestWeaviateHybridSearchRetriever:
@classmethod
def setup_class(cls) -> None:
if not os.getenv("OPENAI_API_KEY"):
raise ValueError("OPENAI_API_KEY environment variable is not set")
@pytest.fixture(scope="class", autouse=True)
def weaviate_url(self) -> Union[str, Generator[str, None, None]]:
"""Return the weaviate url."""
url = "http://localhost:8080"
yield url
# Clear the test index
client = Client(url)
client.schema.delete_all()
@pytest.mark.vcr(ignore_localhost=True)
def test_get_relevant_documents(self, weaviate_url: str) -> None:
"""Test end to end construction and MRR search."""
texts = ["foo", "bar", "baz"]
metadatas = [{"page": i} for i in range(len(texts))]
client = Client(weaviate_url)
retriever = WeaviateHybridSearchRetriever(
client=client,
index_name=f"LangChain_{uuid4().hex}",
text_key="text",
attributes=["page"],
)
for i, text in enumerate(texts):
retriever.add_documents(
[Document(page_content=text, metadata=metadatas[i])]
)
output = retriever.get_relevant_documents("foo")
assert output == [
Document(page_content="foo", metadata={"page": 0}),
Document(page_content="baz", metadata={"page": 2}),
Document(page_content="bar", metadata={"page": 1}),
]
@pytest.mark.vcr(ignore_localhost=True)
def test_get_relevant_documents_with_filter(self, weaviate_url: str) -> None:
"""Test end to end construction and MRR search."""
texts = ["foo", "bar", "baz"]
metadatas = [{"page": i} for i in range(len(texts))]
client = Client(weaviate_url)
retriever = WeaviateHybridSearchRetriever(
client=client,
index_name=f"LangChain_{uuid4().hex}",
text_key="text",
attributes=["page"],
)
for i, text in enumerate(texts):
retriever.add_documents(
[Document(page_content=text, metadata=metadatas[i])]
)
where_filter = {"path": ["page"], "operator": "Equal", "valueNumber": 0}
output = retriever.get_relevant_documents("foo", where_filter=where_filter)
assert output == [
Document(page_content="foo", metadata={"page": 0}),
]

@ -0,0 +1,729 @@
interactions:
- request:
body: '{"input": [[8134], [2308], [43673]], "encoding_format": "base64"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '65'
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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
AP//AwDmi7xYhWEAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 7bcba8c6fee5accd-ATL
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Mon, 24 Apr 2023 04:38:53 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
access-control-allow-origin:
- '*'
alt-svc:
- h3=":443"; ma=86400, h3-29=":443"; ma=86400
openai-organization:
- user-dvhgf0lntotpa5mrg7zv7aur
openai-processing-ms:
- '281'
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:
- f7de1b8475e1f63a3a9ddf12abbac967
status:
code: 200
message: OK
- request:
body: '{"input": [[8134]], "encoding_format": "base64"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '48'
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 |
H4sIAAAAAAAAA1R6XQ+ySrPl/fsrdvat80ZEpMt9h4CIgN0Ifk4mE0BEQOTL7oY+Of99gs/JmZkb
E5DY0lW1aq1V/R//+uuvv+u4SJPv3//89fc7779//4/p3iP6Rn//89f//Ndff/3113/8Pv+/J9Mq
Th+P/JP9Hv99mX8e6fD3P39J/33n/z70z19/b4tRxarabbpl4Cwc9eakb2bxoUZCPhQJuP6HMz3Y
LlxeWYsSVRBt2SZerI1BDsBDnnFdUd50DzSYa8BQwCzGS9FaxVIa3qX63Uc98RZa547P+/yCtMSU
CPY6A/Fe2aZwOY0527z1j9E8r+kMEXctsz1HsUubwylRXw+aEydKpHhaD8Prq4ZULpIsHlassUB8
b5wYuD6iEb8uJzST85xt5PXK6PnhWoIdeiUxlsUmHg68DcDV4jldobEoyt2r8FB04Bv2XHQmYq7k
KSgPNybZ6wPqGPrudDjNA4Ir4yDcrtttErRWoxMx20slejcwLcTq+s0cM62M8X5uczSnmxUx3rsd
4tEez9T8muzJjn2ckO9gBei52ejMQccuHOPLvQTDnlk061ZZ3F+J2kPTiCMdCQvRsKdnC861tMXi
eeUhO+tcQuEia5jeHit32GubBHRn7hLDOx8MioVTQ9HeDHLpPrErTH0LgKrVjniXuRYynR4BRff8
S8z5dhvLXr2y4VA9SqZ/onUodmf/BsvLzWfR/ntG4tDdM1Sdo5pZwjx0/Hp/OOhVUo2qlrsxZG1G
bis4KTo5vmsfiax8VbC1NUyucNkb46sP6FowcWXWvW+M+mr5PhwfZoLrw/ZT0BgTCpIZYUKCzCvG
oOgySOZlwDbmwTdGbUYi9algn3mjl3a9nNs2Gp3jlhmVpAvJ2aklJOz2IlG5OIqRiBWFd5BQYhoU
XDHT7hlKNp8b04NuhsR70Hwox2BNDnmpddxntQ7zPJnj3BSNwcMx7X/rE++BurDyDm0EoIUeLR9t
2Y1HKeMgSvygTCpF0bd7Z0ThvvLIQR6XhTj4+ghWHjKqzIklRnXcJDC/9CFx5qddN24DG2CRhDvi
FtumGPb7TgGFzLYUPc5j3K9KWYKI5y7RKynsxpt71+AaHq9E559dOOjN3YNCcBvPGErd8a04p5X1
ZBdmr/NO9OalrWG6xitmvWJ+oBsFzKX0IM5U34wHKxOJet5ReV+cQn482yfAZesTQqXEpRcWOnPW
GR4zUx+HvOqqEfpvqxHXroQQwZJ70LHnidYAuSteyiNHQV4y2jcZhAMDF9AMHTkFKdrE4yuiERzk
7oz9Y+R0wyFdz6A5yBLRyxdF9Y7ICmzbqsLztHq7dRu8PVicnzGV733jtvUHHFid0xsWn8gryur2
Utdnvu+Ju7sWYoyRPsK2Xx9IfJkfDYEWNxWOm2VHzHPpGUM1F8naHLSBmUt974qPIAoU/djSlqM2
Zvq+5kiVnBnZX1Q/HOtVncCRPA1m6nldMCmtKdrP8xyvLier4Cu5s9FWPgds0x4vYnzmewz5+d6R
3dKLwzHZni7oY7AeL4pkcKd8zqGdb0d6PmjXQtzGvFrfnOSNf/vz3d5dDVW67ONZfW+K7z728Vom
hk+lKmwL8XI2ypoOzyuxaWbHvBiDHH54YsdpKXprzBJI/SZj9mG7K+jTUhOY8IiG3GIuvxKVImrY
ISFRUaNxK482MEW6kDPe2Whki70KRX1+M7vkR4OvtG0LhfK6kH2vpKJJVsd03cnJyLbyy0fDIx04
LHRk0LEuXWNcfmwFpnhg5X1RxfAd1AQuuuew+3oTdpyrQYsk84apMBW1o+HelX7X7HrKW8Fwb5eg
mN8TZlP8x/N7X0PQRDH74Ss764qMjlX6onl7tAzxeuARRfTRM5KEWcyTtznCycsshp/fj/vbj/Uz
Gb7MOTp1KFoCMsqQ7ZDDt9iJsuoqDtpykbGds//GgjsfD10H64VHqS06IVb2DU39hO3jQo4Hqzjl
qryJFboKjm04qpeRgq3iDV4vqtJoPCYw2t3TNbHnxEJSu7xEQIS7ZeasXKOPe5Nt1DceIju20Qr5
dkIpFEV1Jc5Yv8OmXtoWrItoiVX6boxffgA6nRh7GmljjMnVbsEo1YJ+Xvhr/ImfauMXXgKMaHjU
iYeC5haTDdlHot7nkQ9K3A+0ksJHJ3gwWCpVm5a4j/MYslujOYCyXUzsl2S5i1Cam2g1kxMs4Xrj
jrPFx0ONmx7IYbmyBW9mKw9JDx4w93XDBb9KhQLpfSGIt6gkIR7Hp4PsEJfkYJ1FTK0kSOBQZzo7
kjYPe+f40AGWSUQC/vmE3Ct4hOLW1Fi4kKuYYnxPIZ7rc+I+9UMollDZELnfAq+OXdYNB3ewgL2k
FdmuHzEaNSI4iufanFhjagih0zugwt5LVMGjXiyicPDgJmkxlWVN6Zpzb/Qgdas3sexrJrjh3R2U
a2lP+yPZG4O8fEfodVFkElrvc9c3ka2jvpJOJGk3hpBTyFSIgu8Gr0quxU3vRR641zih6aVYdfWG
hz6yr+uRLvhw71o26y/Q7qoYS5v4GoputsyhPqo3ejTKRgxih2qIt0+HbPF3LIRUGzbUsdXhRZfv
uzGINibEyiHE6+XKRkOktBFkx/I89edH/FboqK9P68OARdBhg4eHb4Ye39WFOMwdURfdHEV13ZZT
6f3VBG/smKL7t/KZtckUdzzvVQWGs3PGUrjk6CtTHZBHeczuu6Bw2YSPaJnbQCzjIIw6dRMbNl5y
IS5t1Y7t1E0JlS75xLMrw+Ccc4w0CN4Mp5rnDvsQX8ATLGZ6kgYdP2WaClQJDWI5+5lRSaGcorpM
OfOoqblc7toSKafVltgfYyGmfqXCKvFNvN5YRUf7tYVRtfukVDl9kpi7dlPDYWUADircIFFvuwv6
2PbAdsN1IwQp33x9zI2EuA+UGN/LfF6DXGmUOGyAjs7y/PLrt8wruryj1sagsHyWBTHvnzoehyj3
UB4aJrNdtBI8kQcLHl3OsDo7yLFYRysPJv7zw9uOrz+mDtL9eiDk6WExLlzDUqf3o+IT9d1vf9ej
kBGeXc2XO0C9uKBZt51jJfuexLjniwSG9FQzXXMKY1Se1EJ1bu3xMke1MaoXtVdHtf0Qi8afYpzb
Tr0iy8phe8sdxIRXEZQPx2MbzRGC3/2GAxH7Lfv1P97Oax8eN7gyrAdWzDbL7UVtRaYQ4otj8Yd/
3xTR4A/3/W6Y4XMLdW7u2dPj55BLlvOnn1F2vKN46n/O7/fozOsKJE6rpYTyxSfBneo08TjKmQYW
Qzs6Pyytgs+Hcwbm1jrhBf4G3bh9HySY+C8xcf0y6GneXGA2bh94tsVDzNePVwX4srCIZ29RV788
NYBbRY50ceEUFdk+koAk+w8xgq0ZjndDxmBFYLP96eN2U7xM0ALlhWcZLF2mkH2F3H2wxyI8LpEQ
K+0GYj63Kb2aG4OfMluBeaWY5LDYJgXPOETIxyvOHGVmFQvn3VD0w+tNNxtEd5AQoOx71oh3fTsG
d2a+uf71V8/U57FoXy8HPuvwxcjNNw15z9cJLPz+wOz+YBSj66ETKEGeMptZo8tIbJyAbRr7D98Y
zr1BV+LhzdkOfXUkRbKuQxDcZkwzyqgYqRTJ8GoemGkLt++Gg+r16P3eWHixT3M0WAtb/vERlqg8
D7vIulQoXK78ib9UxbiNuwj016whu1PuoFFFhYJ+9bCtVkXH/dMxgI0qIqqo23vIj/XBQ4rJToSo
6qn4BlspQgcrFPi7shXRrD5XD6KrY7Gd2M/dFo08X5+U9FdPdihXn4MJibGe08+0Hr2dRArK3r6T
h5ITdwitLkXqd58xY73SO1Ge9ak/lldm673jjpeTd4NpPboijwf6Nuzrqx8MD+K6UWbwu31VUb4l
KiHf2u4GY721USZ/txSYL7r+IkBGRIuA/fCg84+1gpa3cYlXXsnCP3x4XG8wM2sjN77jzitRJl1S
YtpKg5g68wK4DuaLrul+6Liv9zPItweV4YIX8fD2+bie+AWF69txhakUKUTpEWGVDclPrzhQiNEm
G38VhL96AdhZClUmfBERzpL1T/+tmdx3Y2oZt5++xmtTxx1ltiUBBWoTHG5K8bXs7fjbD4yOfBPy
FzqocL7VJ/ZUPkxwqUUZrFuvINuL83Y5VsIb4FP6ZPsZpQVfxUmEbmuPss3n7KJxrzcyaq/cYwcE
W0Me9/0MmJ1KxGuyJOSfmeNAKJw/ejXuzl4YAOpOHiEUj/GoHnx//bqoMh41xzDG+Aka8gW90cUm
tjqpfD0C5OGyJc7Hlgv+2w+jVAqmlQl2v51b2GAEFxerZ4HjMX1FDirmZ515j/OrGz8nDcPyuHYx
1zrP4NLrbsGQXmra+Y3vCpNtdHj75o6Z728m6KmMSmDIW//0ZPe9b86SqgXqixiP9hwORecn8MN3
Ih9xwY9py2H3UHQWWFlp8E//kGFWgEOHukSIf+7+DBqzfjHD7Sv0w3/VPAfbKV/zrpatVQSLu5pR
+QpDwavcPIG9l55Tv70ZAkWOjezz22U//i5X/JPDtN9kI2Iz5trmVqF2V8aUh7ttN0raqkRk/yYT
X46K8fLmPZyficZucVqiEV1fI4r2FyD23dXcRb5VMHyvxZztd0FhMPel6UiXVzVGyoPG7Y/f1zdq
0uWw7opvk9QRpHxxJPaoP9x+9+owrCJSYZpdvjG/+68RfvxMU6Mk7I7vREJhMDtiubd1tFRyK0Vq
MT8Q/ZAwd0i8NILJP6Kq8ngaYzNuaxirzfCLd/fdh/gE/aUu2KQ/xDBDNwq3tr38qTfelvfsx9+J
d1yMiL3C/gLa+WgzO4+YEIvrQUGy1zbUCR8HYyjupQNWs4vZfn5S4vHu2SZ8tqNDPPlrGX0fJj4s
IFWY0yvY6IHNb+jM3Z6um6zrxKd5pxB8zmu2ey/D/9IbVYJPePnCB1eQuZQBvpMv05L7IARftgG6
LpaM2RMeCho4Ggzhdsm8AExXvML+pNIderHdFTLErzPrBCdmpczZ7zx33AbaDMDsj4SY35U7rrKz
g35+Qrv/LtBPH8H48gtyqhsXjYt0N4OPU9ym39MEv0qdinZBc2QbT5bdIRMJV6XHGNAZ3WfoW8lH
DSL95TP3qX/jcf/g1U8/T/xzGbfKk5rQ3zcOyUV2/i9/zFczk6RJeDS4BY6Kbqq0I5EbcdEFm4ii
cF96VC47Hncnfr7Bjy9nu83B6KNI+DBDIaeLIdi4i+LeO6DLqGZa673jMfhuAVp829HhqdzjMTbf
Aaw8MyQ3cutD9rg3OiTE4+zHB8dhHt6gMG4V22n3izumUKtwPTczurwsSDe8i0WNnm1s0R9fZWmh
Zr/8oYMny0ZTlSWFoBt0ulp/HrE4f1odHUprTX7x4WW7pHA/YY+OoVeFw/T8+tfvzUlf80RemdBo
JMF/6qOOVyeIW0uj2e5zQd9FzKrVKglMooeeFcrwQgG6NN8X2c7Krzt01aDCV/PuzPCQjOh8ltlo
8isZZmjmUokdMIz94kF2xiEPOX8aKtBtrjLC0DcU377pf3yK7Kb1x6efqOhilgPbD0ne8eNZu0Ab
2YK5bqS50/o+sIt5IBN/LcS6DNs//I9c90H3i+dPTzCnyj00bqz7CU5ebtFZkK3D8aPHKppn1o1o
srLrZLJOHNhp1opovpSJsR4u1Q/PsOpIO7c3BucE587r2aHgJ7c8maODJr9o4pNVyNLAwmDuEkR+
+kFM+gNFozri+MhfoSjdTEfPISqJpxIV9f3bLqHwyhVzL/dPPO7PFQUpu3S/ejF6CG8W4ndt99OP
MXs5GxWtokNFdi881X93+8MP8LjrlwUrV6hVmXQ/MuIfdmLQsZPCwekV4q2MT5z/8lF+vRu8/JTU
7R8bp4ZbIbcMy2OFhv5Tz+A4kgOdJ6EW/vGX8f3wnd5X+vE7C5qrt2LWp5yhQTMUUH/43Lwvjitt
3NZCqbopiaM85m45oj0F01W1P/1NmfzS1da5LYjh3/bxMG/jBHh2pvTNXSaE+JxMdKF2xfCluBfD
81lLwJxljOWy82M5fko6ynf+DcvYU+NmFzUOxFDfiOW074L98uf21dfEXOqNO6weEl9p+NgyLzt6
Rb/fGRmsRVmTXVYXIf/0Z+mP35ZP/tv0PjMo861HyORn/vw25IIW0HiuZgUv8S1CDS9nbMuHVSFi
ye5Vub6fSZTsSdeb2cFE7BsLLGnEEHytKCc45/qd7DbZLhQ7dVMBMeUN5StsowHUV4ve9HCncnXr
wqlfVyg7Vmc21ZPBreuRInS6MCyNd8PgsOlGiFxWUP7IDIPb/neG4oXcT3qzd/nzoaU/P5s59ksP
2boMaziG6p4Z98/K4MuSjLARazrxlSCsV+VMhgk/CV50i46WX0WG9fbzpeN2nhRSvJ/pEOo8+4P/
LckPN2CbzsaR2r0KOvnL6MzmKnOPZCXYo3BTdFtj+tNv7lD4G6o+hXAJaYenGHtRcJj8RdyyISmm
9SVQVWiJGTgLJCIAEwJfu5JLNTu7DC18BV4f60O2NV2HIi3GHCZ+y4xl8Qr7aN4n0C5WT4w6+y3o
xjqeYDO8d+TXz8TnUpdA5xbDy/ugFkOeP3O0fun+T28bbAhrB6Z8xTN2lmJ5mc51SMHU/9SfFO2t
GTy36e6HVzF9dl0NBXOPzD1Z+c+fz9F3f+vZvdBsxJfR+6JO+UprPObFQC56CeH5orCDhR4ud2Oa
weQHE40u3JDWQ1qhWVRt2WFlK2isPltTFdXHZO7EZ6XHiWRQrpdLzD3/YVBFBRl28bL841ct3+bW
g7V3v2P0QInLf/V3adiLOPtd7w7K49Cjhlcz+omUDjWWfRgha2f3if8t4iFZ3VPQb1VJtvtUF+PF
aWZQPx4BS1QSoSFovxV8wVlM/qEdSixNZPQUg0tVyNA0H7lF6BFfZgT7NPvz/5BCYMu89vMtJn9Z
RfJWWjPXb7gr4t2hRhP+Er1xJNRcNTqiqT7JQXoGiKvvtwLPlycoOgcXg59wUkGMmwf7zXPGMSQR
sG7jUdE4pcvnXnkBspoNzDpoleDFoTlBfK4R2SyGd8H3eeDDhLdsk8xb8Z3mcxCmL5cYpXbpBscJ
Zn/8pfYht12qz+QUFqp1pPn2PoreHFYRcvnwYvvsW7ryorpLsG9X/TQvkMImb5sbcrX7nPzmRcxW
eYv28omwnSE8Q0jGcQYT/8dStTrF9HOyMZr0ODOS9IVGiR082LKzREgGVSgccZbgWetPPGxV1xj8
UbutJ3zFwjAyNEzxQ+uX5jPnY1+67senh93VZdhCXjg47xdddwZtqHyo/IL7p7sP1jfP2H7KTzrv
hYT8+TGg/VlhxlA7Bx3uj9uT+bHzEj/+DbtlsCNkf3ka/LkZKILUOrMdzVaGuGUz/6cPf3zC+MPX
m5l3YW71mcVU65wcMpltiem6tKC57VdgqsRkGM/qYmBgAKzPQ8q8SY+zyY+FJ24jCpa/QTx83iW0
UW6C/PyAscNGvh7i2YY4lvsyRustKYjoQ0Gs9/gqpnhfYJcvdfz5lNgdUI19WPj0MOlDU+RexgLA
X7kgm4rlhuj8TvnNW/BcPtKOmfp2Bk5gIbJ9e3a3IM0ugcmvwpKe28XQJPXtx18nPzFA42w9WKDN
Oo/YaDyFI2qrWo2PB5nt15uw4I/TLkNrTXoyL8y/op/6xZ/9dzhyYiE+iQm3+fv8m2cVkx/XImEP
KnGKaoP+8C/v6Bq0ziOCRJffMKjDeCWu6jSh2B1wBrP1BZODcyMdL8Yog/XgbYgz+XF0z9cpHFGc
4ddmSRELWHVZTfXzZ569GG+KCpM//Ud/dMdYvf36A9Hv+afjm0qR1lP/pT//hJ+a4gTz+Pn6zaOM
0e8vCmRVcaISjFknhodTgXK/OET35Hc83Kmv/OHnRnw6uTytWhXsvfxku1lzEEJfQoTWjjZitahe
QujJt1bPbK0SI/WfxlccLxZc/PODbV/7PuRuYJqw3rUupT7N3OGcNz6aVZcBPxZV6f6pr998WU/d
bzfljww+KB1dTfPq7rGTeliElvTzh4rhnpQl+vGrjT7TDO6vnOSnN5ibjaYYOAgd/v6dCvjPf/31
1//6nTCo6kf6ng4GfNPh++//Pirw7+gR/VuS5H8z+c9JBNpHWfr3P/91COHvpqur5vu/v3WZfvq/
//lr8ee0wd/f+hu9/5/b/5rW+s9//R8AAAD//wMACEOkc+EgAAA=
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 7bcba8cb2aa7accd-ATL
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Mon, 24 Apr 2023 04:38:54 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
access-control-allow-origin:
- '*'
alt-svc:
- h3=":443"; ma=86400, h3-29=":443"; ma=86400
openai-organization:
- user-dvhgf0lntotpa5mrg7zv7aur
openai-processing-ms:
- '375'
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:
- eecb4503410fcc7505b7554b7109e6b1
status:
code: 200
message: OK
- request:
body: '{"input": [[8134]], "encoding_format": "base64"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '48'
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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
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 7bcba8ce4dc5accd-ATL
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Mon, 24 Apr 2023 04:38:54 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
access-control-allow-origin:
- '*'
alt-svc:
- h3=":443"; ma=86400, h3-29=":443"; ma=86400
openai-organization:
- user-dvhgf0lntotpa5mrg7zv7aur
openai-processing-ms:
- '407'
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:
- 6a3f8b11cfa466968b57d3335d4394e9
status:
code: 200
message: OK
version: 1

@ -0,0 +1,384 @@
interactions:
- request:
body: '{"input": [[8134], [2308], [43673]], "encoding_format": "base64"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '65'
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 |
H4sIAAAAAAAAA1R5W9OCPLPl/f4Vb723TpWIQNrvDgGRkwmCx7kCVARETiaB7D8/pc+umZobq8AU
Denu1Wut/Pd//fPPv01a3rPPv//5599XMXz+/V/fe7fkk/z7n3/+93/9888///z37/f/W3mv0/vt
Vrzz3/Lfn8X7dh///c8/0v+98/8W/eeffzflpGFN69f9MvIWnnbx7i9m87FBQt6VGfjhmzMj2ix8
XtuLCtWQbNg6XazMUY4gQIF5Vilv+xsarRVgKGGW4qXo7HIpja9K+7jJQIKF3vvT4zo/IT2zJIKD
3kR8UDZ3OB2mgq1fxttsH+f7DBF/JTOXo9Sn7e6Qac8bLYiXZFL6jYfh+dFiKpdZno4qa20Qnwsn
Jm72aMLP0wHN5KJga3mlmgPfnStw4qAi5rJcp+OOdxH4ejqnKprKsto+ywAlO75mj0VvIeZLgYKK
eG0R1xhRz9Bna8BhHhFcmzvh9/12naGVlhyI1Z1qMfiRZSPWNC/mWffanK7HrkBzulaJ+dpuEU9c
PNOKc+aSLXt7Md+CCuixXhvMQ/s+ntLTtQLTmdk079U8Hc5EG6BtxZ5OhMVodOnRhmMjbbB4nHnM
jgaXULzIW2Z0+9ofXX2dgeHNfWIGx51JsfAaKLuLSU79O/WFZWwAUK1uSXCa6zEz6B5Qci0+xJpv
NqkcNKoDu/pWMeOdrGKxPYYXWJ4uIUvczxGJXX/NUX1MGmYLa9fz8/XmoWdFdarZ/tqU9Rm5qHBQ
DLJ/NSESefWsYePomJzh5JrTc4joSjBxZvZ1aM3mbIch7G9Whpvd5l3SFBMKkpVgQqI8KKeo7HPI
5lXE1tYuNCd9RhLtoeCQBVNw7we5cBw0efsNM2vJEJK31SrI2OVJkmqxFxMRKoVXlFFimRR8MdOv
OcrW7wszon6GxGvUQ6imaEV2RaX3PGSNAfMim+PCEq3J4+k+/OKT4Ib6uA52XQKgxwGtbl3VT3sp
5yAqfKNMqkQ5dK43oditA7KTp2UpdqExgV3EjCpzYotJm9YZzE9DTLz5YdtPm8gBWGTxlvjlpi1H
1+0VUMhsQ9HtOKWDWskSJLzwiVFLcT9d/KsO53h/JgZ/b+PRaK8BlII7eMbQ3Z9eindQ7Qc7MWdV
9GKwTl0D32usMvuZ8h1dK2AtpRvxvv3NeKRaSDTznspueYj5/ugcAFddSAiVMp+eWOzNWW8GzLqH
OOZ1X08wfDqd+E4thIiWPICePQ60ASh88VRuBYqKitGhzSEeGfiAZmjPKUjJOp2eCU1gJ/dHHO4T
rx9399UM2p0sEaN6UtRsiazApqtrPL/XL7/polcAi+MjpfJ1aP2ueYMH6vF+weKdBGVVX57a6sjd
gfjbcymmFBkTbIbVjqSn+d4UaHHRYL9e9sQ6VoE51nORraxRH5m1NFxfvAVRoBymjnYcdSkz3IYj
TfJmxD1pYTw1apPBnjxMZhlFUzLp3lDkzosCq6eDXXJV7h20kY8RW3f7k5gehYuhOF57sl0GaTxl
m8MJvU024EWZjf63ngvo5puJHnf6uRSXqahXFy974d/+fDZXX0e1IYd41lzb8uOmIV7JxAypVMdd
KZ7eWlnR8XEmDs2dlJdTVMAPT5z0XonBnvIM7mGbM2e32Zb0YWsZfPGIxtxmPj8TjSJqOjEhSdmg
aSNPDjBFOpEj3jpoYgtXg7I5vphT8b3JVX3TQak8T8QdlLtoM3V/X/VyNrGN/AzReLuPHBYGMunU
VL45Ld+OAt98YOV10sT4GbUMTkbgsetqHfeca1GHJOuCqbAUraex60u/a3Y+FJ1geHAqUKzPAbNv
/qfjy20gapOU/fCVHQ1FRvv6/qRFt7dN8bzhCSX0NjCSxXnKs5c1wSHIbYYfn7f/24/VIxs/zNt7
TSw6AjLKkeOR3afciqruaw76cpGzred+UsG9d4DOo/3Ek9SVvRCqc0HfecLctJTT0S4PhSavU4Wq
0b6LJ+00UXA0vMarRV2ZbcAERtvrfUWcObGR1C1PCRDhb5g1q1bo7V9kBw1tgMiWrfVSvhzQHcqy
PhNval5x2ywdG1ZlssQafbXmrz4AHQ6MPcx7a07Z2enArLSSvp/4Y/7lT3PwEy8BJjTemixAUXtJ
yZq4iWjcIglBSYeR1lJ86wWPRlujWtsR/3acYnZpdQ9Qvk2J85RsfxFLcwupMznDEm7W/jRbvAPU
+vcd2S1VR/B2pgZIuvGI+c8LLvlZKhW4XxeCBItaEuK2f3jIiXFFdvZRpNTOogx2TW6wPemKePD2
NwNgmSUk4u93zIOSJyjtLJ3FC7lOKcbXO6RzY078h7GLxRJqBxL/U2J13+f9uPNHG9hTUslmdUvR
pBPBUTrX58Se7qYQBr0CKh1XogqejHKRxGMAF0lPqSzrSt8eB3MAqVdfxHbOueBmcPVQod8HOuyJ
a47y8pWg50mRSWy/jv3QJo6Bhlo6kKxbm0K+Q65BEn3WWK24nrZDkATgn9OM3k+l2jdrHofIOa8m
uuDjte/YbDhBt61TLK3Tcyz62bKAZq9d6N6sWjGKLWog3Tw8ssGfqRRSYzrQpHaPF33h9lOUrC1I
lV2MV0vVQWOidAnk++r4nc+39KXQyVgdVrsRi6jHJo93nxzdPuqJeMyfUJ9cPEXz/Y5T6fXRBW+d
lKLrpw6Zvc4Vfzq6mgLj0TtiKV5y9JGpASigPGXXbVT67IuPaFk4QGxzJ8zm7mcOrIPsRHzaaT3b
ausKakMKSeDUpsk55xjpEL0YvuuBP7oxPkEgWMqM7B71/JDrGlAlNontuTOzlmL5jprqzllALd3n
ct9VSDmoG+K8zYX4zisN1Cy08Gptlz0dVjZG9fZ9p8rhnaXcd9oGdqoJOKpxi0Sz6U/o7Tgj247n
tRCkevHVvjAz4t9QZn5O83kDcq1T4rERejoritNv3rKg7Iue2muTwvJRlcS6vpt0GpMiQEVsWszx
kSp4Jo823PqCYW22k1OxStQAvvznh7c9X70tA6TreUfII8BiWvimrX2/j4p3MvS//V1NQkZ4drae
/gjN4oRm/WaOlfxzEJPLFxmM90PDDN0rzUl5UBs1he3iZYEac9JO2qBNWvcmNk3f5TR3vEYly9pj
ru2P4otXCVQ3L2Br3ROCX8OWAxHuhv3mH+/mTQi3C5wZNiI7Zevl5qR1IlcICcW+/OPfF0W0+M3D
sB9n+NhBU1guewT8GHPJ9v7mGWX7K0q/88/7PY/Ogr5E4qAuJVQs3hnuNa9Np0nOdbAZ2tL5bmmX
fD4ec7A29gEv8Cfqp81rJ8GX/xILN0+THubtCWbT5oZnGzymfHV71oBPC5sEzgb1zTPQIrjUZE8X
J05RmbuJBCRz38SMNlY8XU0Zg52Aw9zD2++/+bJAj5QnnuWw9JlC3Br5buRiEe+XSAhVv4CYzx1K
z9ba5IfcUWBeKxbZLTZZyXMOCQqxypmnzOxy4b1ain54ve5no+h3EgKUf446Cc4vz+TeLLRWv/ka
WMY8Fd3z6cF7FT8ZuYSWKbt8lcEiHHbMGXZmOfkBOoASFXfmMHvyGUnNA7B16/zxjfE4mFQVt2DO
tuhjICmRDQOi6DJjulkl5USlRIZne8NMX/hDP+60YECv19rGC/deoNFeOPKPj7BM40XcJ/apRvFS
Db/8pS6nTdonYDxnLdkeCg9NGioV9OuHTa2WPQ8P+wjWmkioom2uMd83uwApFjsQommH8hNtpATt
7Fjgj+ooolXf5wCSs2ezrXDnfocmXqwOyv3XT04s1++dBZm5mtP3Nx69HMQdFNe5kptSEH+M7f6O
tI+bM3OlGr2ojsZ3PlZn5hiD50+nQ3CBbzyqktsNfVr2CbU3hhvx/SQ3+dU5a6jYEI2QT+P0o7na
OCiXPxsKLBT9cBIgI6InwH540If7RkHLy7TEalCx+I8PT6s1ZlZjFuZn2gYVyqXTnViO0iKmzYII
zqP1pCvqjj0PjWEGxWanMVzyMh1fIZ9WX35B4fzyfGEp5R2S+x5hjY3ZT694UIrJIetQjeJfvwBs
bYUqX3wRCc6z1U//rZg89NPdNi8/fY1XloF7yhxbAgrUITheV+JjO5vptx8Y7fk65k+00+B4aQ7s
obyZ4FKHclh1QUk2J+/lc6zEF8CH+4O5M0pLrqZZgi6rgLL1++ijyTVaGXVnHrAdgo0pT+4wA+bc
JRK0eRbz98zzIBben15N+2MQR4D6Q0AIxVM6abswXD1Pmown3TPNKX2AjkJBL3SxTu1eqp63CAW4
6oj3duSS//bDrJSS6VWG/U/vlw6Y0cnH2lHgdLo/Ew+V86PBgtvx2U/vg45huV/5mOt9YHLpebVh
vJ8a2odt6AuLrQ14hdaWWa9PLuihSipgKFj99GT/ua6PkqZH2pOYt+4Yj2UfZvDDdyLvccn3947D
9qYYLLLzyuTv4SbDrASPjk2FEH9fwxm0VvNkpj/U6If/mnWMNt96LfpGttUEFlctp/IZxpLXhXUA
x5Ue33l7MQVKPAc5x5fPfvxdrvm7gO9+k7VIrZTr60uNum2VUh5vN/0k6WqFiPsiX76clNPpxQc4
PjKdXdJ7hSZ0fk4ocU9AnKuv+4tio2D4nMs5c7dRaTL/qRvIkNUGI+VG0+7H75sLtehyXPXlp82a
BO58sSfOZNz8YfvsMagJqTHNT5+UX8PnBD9+pmtJFvf7VyahOJrtsTw4BloqhX1HWjnfEWOXMX/M
gnsCX/+IasrtYU7ttGlgqtfjL9/9x43xAYZTU7Kv/hDjDF0oXLru9NdvvKuu+Y+/k2C/mBB7xsMJ
9OPeYU6RMCEW552C5KBrqRffduZYXisP7HabMnd+UNLpGjgWvDeTRwL5Y5vDEGchLOCuMG9QsDkA
m1/QkfsDXbV534t3+7pD9D6u2Pa1jP9Hb9QZPuDlE+98QeZSDvhKPkzPrqMQfNlF6LxYMuZ88VDQ
yNNhjDdLFkRg+eIZDweNbtGTbc+QI36e2Qc4MPvOPHcb+NMm0mcA1rAnxPqo/qTmRw/9/ITO/SzQ
Tx/B9AxLcmhaH02L+3YGb6+8fJ+nC36Weg1to3bP1oEs+2MuMq5JtymiM+rm6FPLex0S4xky/2F8
0sm98fqnn7/8c5l2yoNaMFzXHilEfvwffyzUcovcs3hvchs8DV00aUsSP+Gij9YJRbFbBVSuep72
B368wI8v59v1zhySRIQwQzGnizFa+4vyOnhgyKhhehe80in6bAA6fNnS8aFc0ym1XhGogRWTC7kM
MbtdWwMyEnD244PTOI8vUJqXmm3168mf7tBocD62M7o8LUg/vspFgx5datMfX2X3Ust/9UPHQJbN
tq4qClE/GlRdvW+pOL47A+0qe0V++eFVt6RwPeCATnFQx+N3/eo3762vvuaZrFrQ6iTDf/3RpOoB
0s7Wab59n9BnkbJaVbPIIkYc2LEMTxShU/t5ks2s+vhjX48afPTgyswAyYjOZ7mDvn4lwwzNfCqx
HYZpWNzI1twVMecPUwO6KTRGGPrE4jO0w49Pke03/vQIMw2drGpk7pgVPd8f9RN0iSOY7ye6/40f
AjtZO/Llr6VYVXH3x//I2Y36Xz5/eoJ5dRGgaW1fD3AICpvOonwVT28j1dA8ty9El5VtL5NV5sFW
t1Wih1IupmY81T88w5onbf3BHL0DHPtgYLuSH/zqYE0e+vpFXz5Zx+we2RisbYbITz+Ir/5AyaRN
ON3zZywqPzfQY0wqEmhEQ8Pwcioog0pl/un6Tif3WFOQ8lP/6xdzgPhiI37Vtz/9mLKnt9aQmuxq
sn3ib//3lz9+gKftsCxZpaJOY9J1z0i424rRwN4ddt6gkEA132nxq0f5+Wrx8l1Rf7itvQYupdwx
LE81God3M4P9RHZ0nsV6/Ocv4+vu8/1e6cfvbGjPgcrsdzVDo24qoP3wuX2dPF9a+52N7tq6Ip5y
m/vVhFwKlq/pf/NN+fql6sa7LIgZXtx0nHdpBjw/UvriPhNCvA8WOlGnZvhUXsvx8WgkYN4yxXLV
h6mcPiQDFdvwgmUcaGm7TVoPUmguxPa6V8l+9XP5GCtiLY3WH9WbxFUd7zsW5PugHNytmcNKVA3Z
5k0Z8/dwlP78tuLrv32/ZwZVsQkI+fqZP78N+aBHNJ1reckrfElQy6sZ2/BRLUUqOYMmN9cjSTKX
9IOV7yzEPqnAkk5MwVeKcoBjYVzJdp1vY7HV1jUQS15TrmIHjaA9O/SiuyuV60sff+d1jfJ9fWTf
fjK5fd5ThA4nhqXpapoc1v0Eic9Kym+5aXIn/MxQupCHr94cfP646fefn80852nEbFXFDexjzWXm
9a2afFmRCdZiRb98JYobtZrJ8MVPghf9oqfVR5FhtXl/6LSZZ6WUujMDYoPnf/jfkWJ3AbbuHZxo
/bOkX38ZHdlcY/6eqILdSv+OLitMf/rNH8twTbWHED4h3fgQ0yBKDl9/EXdszMpvfAk0DTpiRd4C
iQTAgijUz+RUz44+Q4tQgefbfpNNQ1exuJdTAV9+y8xl+YyHZD5k0C3UB0a98xJ0be8PsB5fW/Kb
Z+J9aiqgc5vh5XXUyrEoHgVaPY3wp7dNNsaNB996xTN2lFJ5eZ8bcAfL+Os/KXHtGTw29+0Pr1L6
6PsGSubvmX+wi58/X6CPexnYtdQdxJfJ66R965U2eCrKkZyMCuLjSWE7G9187qc0h68fTHS68GPa
jPcazZJ6w3aqo6Cpfm8sTdRvi/lfPivdDiSHarVcYh6EN5MqGsiwTZfVn1+1fFmbAFbB9YrRDWU+
//XfqWVP4rnbwR+V225ALa9n9J0oPWptZzdB3s2uX/63SMdMvd7BuNQV2bh3Q0wnr51Bc7tFLNNI
gsao+9TwAW/x9Q+dWGL3TEYPMfpUgxx9z0cuCbqlpxnBIc3/3g8pBDYs6N6f8usva0jeSCvmhy33
RbrdNeiLv8RoPQm1Z51O6NufZCc9IsS110uBxzMQFB2jk8kPOKshxe2N/c5zpikmCbB+HVDRepXP
50F1AqLORmbv9FrwctceID02iKwX46vkbhGF8MVbts7mnfh8z+cgvj99Ylb6qR89L5r9+UvdTe76
uzGT77DQ7D0tNtdJDNaoJsjn45O5+afy5UV9lcDt1OF7XiDFbdG1F+Tr1zn5nRcxR+MdcuUDYVtT
BKaQzP0MvvwfS7V6SOn74GD01ePMzO5PNElsF8CGHSVCcqhj4YmjBI/GeOBxo/nmGE76ZfXFVyxM
M0fjN39o9dRD5r2dU9//+PS4PfsM2yiIR+/1pKvepC2Vd3VY8vBwDcH+FDlzv/VJ54OQUDjfR3Q4
KswcG29nwPV2ebAw9Z7ix79hu4y2hLinh8kf65EiuNtHtqW5aopLPgt/+vDHJ8w/vt7OghPz6/cs
pXrvFZDLbEMs36clLZywBksjFsN41pQjAxNgdRzvLPjqcfb1Y+GBu4SCHa4Rjx9XCa2ViyA/P2Dq
sVmsxnS2Jp7tP83JfkkKIsZYEvs1Pctvvk+wLZYGfr8r7I+owSEs/g8AAAD//6SdS6+jwJal5/Ur
SndKX4ExEEHNeJuXCV7GttRqAbYxYIwNRAAh1X8v4XO71YMadQ8zlcdpx2Ovtb69zQnxccuHBq39
isQwmPgGqR2pdTqEg/DrtwQsH+GBGJrJQDe2ADJfvj3s0OdQwo1XBZxW283yKfvLz79uPDEGKyMv
FlSYwUc2WNNkBd+ul4royBNHVpNmvqWHCsgK9yB+Uk903PTib/3dGbgFpe/SgBf2dfr1s5qNx30B
tRcJuU2ngj//5Ueejvs6R4AO9SWA0rKekSe5n4QejkEFGTkL0NG9oGFu1ryC8uKryN14HHZm+Q4j
UFTBU91jQGLSZeJ2f/762bv1Ikhw49N/+WOICuny0wekXev3MKudwMmb/uIfP5nTT5NCtng8f/0o
fQ3HTIBV16SYg2s10OXmdlC4Zi7SfP5VLFccCn/+XC/S1Jvv3VeCtsM/yIH5HCnV9jAHsqusgdR0
T0q1cuqlE5ElpN/Dhz7RKLNgFp5uxHw6YzJ7sWFA+fD1MA5x5S2n+hMCpsuW4LbrWu/vfv36y9rd
m4bt/PAwhMKAxa1fPdwO3Ah3icX9+FCzXMu2BT9/pWqMos+h6Ja/vEG8ajXoMkOqwX/8pgL+83/8
P0wU7P77iYLcnN8YHLTaW4xvkoNLnoYkvnweoE3KYwh44r4Igsqh4Jle0IAeRQZBEi6GqVbUUhZl
/4b8Ly68uXB4DB2WcTG7aLtkqeK+hwdxZNFBUiWwnCebgSnfxoFrnhh9Wtayh2iydKIFslh8r69L
C8CrNkmwhPGwUAVkUvwdFOQtCgKzy4WWzAdWTHRffYNFh2sHPc1YgpV/6QM95FIPc/wqsVicw2Qa
3kwHePWoEedWHOh4RBEG7v1hIefOf4ol8z0b4FkISTokL4Bdtgpl8ayWJNinHzBPipOCQmCrgEnG
RzOu8daBj9wVBR3IEhpphAdz11fEFMJ+63jNHJDgMm4dWJFicedm8Gl7O3KcR8ObOiZL4S1KbDwN
gE0mr45D+fx8CQFN47EZBjn14YlIGlGro+L1XTrlUHzyEeaw89EJ3RUGfMbwS4qoSpPPXIwh/Gpr
gPSo/CT96W5D+Oy/MzqQ8d705rOPoVSQK1LDW53M0+ciACgtOfJZMS8oMLRclLnWIs4ginS5iI0A
TZVzyOV8YwB+vUQOfqRqJtqryYuZNGkPbRAfiQ32KV2Up6hAZT3qSDUfYUHDz1OC/mw8UDT4or6y
bJXLz7BIAlkjt2YOed6Hjbf7EH3vrN4ofFYXmucKIYc3K336Gk0I2d3Y4DlHZ30emWMLzBQKxKwu
RYPtRf2CZXnDYC8KLf0usl7ClNMA8sEBN2SQywC0p+8JIfKmwyycHqFUNEmOuXMhFvP40EsI5WxB
jmxciznjxAx+rvcbnkvYJsvdelQgGgYHHXx9KhbZ6TJon/uGOIYtgvXsjxW8f0yOqFXGe2MMDhdI
7X34d94pOiEN3m31ieG4xsNsPNoOnPzwgi5J2oMZXw8+jGz9gcxbfUnI7/yklx4TLbwU3uye3iv4
SPWM/NyPhvn9sUN4aRwr4BlhojNybiX8toWIYdxqA7FfigGtkbZk29+COHElyBx+V8jE074hd9Nf
pf1JYgPm0uXF2kZ3CPjAiImlCzylDW4hZNzYR84gXsHofrUv24bPN9I45VXMF/2iwNI4TcipWTYh
VmPk4FAEeiAMp6GYv4YjgJoqHLEOZ0Kn4r5C2B7zfTCPu4u3KOehAyx1fKRoe7dY+rN7BzJMexTM
dwvMlPdLqFXBgg4Oe6L0lGg2GN/1Cbfx5zgMygVncOpqnyh+MwMMOy6DmRRaCFnFQufifu3A927n
KIFjPZBj4cWwP50FhESI6DpxT0Pm6+iEeYHjh5EOrAKZBxMTA+j6MFvCpQevSrsizxFeBbEIyQBf
JyfiX5uC0uLWB/B4f+c4BC6nz99w5EGXrStxGYkm9KOHtXxsoycJ+CHVh3BgL6JgSDwydovg9Z/p
eoeEKjxRa8AV4/C+BTB5SidiaCKhveP4vESvqRcMy1o0c3TEX8iFHxn33KXUacbfyt/nR1ofvoe5
qIgFjjoKAgbnqBjNZxVDZwQCUXrdL4bbU7xAON+exH1EKuDfj10Lv0qwR4ZwN5M59CIbVlnlokTq
PR0fQp2Db56HQQ2jrz7fTcaWBiZokX2+3ekyF2MMfbk54F2FzGZWJqkFlkeigL1SZuif968Po6N7
JK55uut0vMeG3F6oQYxGU721u1UWxN2hCDBDNTCI7GJDhRgJuZRnsSHnc5GChR+/aFs/j/Il2wPf
mjExWVLRZVnTL+yCZ4r0q3FJcIucO8jvioG0/ZkUcxumvnSp3gRj2wjBCsSkgsVZPBIj5Qt9rn1P
ARIMUqROolXg0+dqw6v8dAKYM3IxlzuHgfuGb5Dby3axmGcugAP4HLf1e9JJRREnbe+fBEF01yf8
7CtJLG0XHapXRpdiOAlA2MkOQpeL7C1z0cYQHLonOTz3dUGtC8OAWycHyBj3t2au2UqT3ez4QWqX
H5NZdAUNnJXmFdDn6eatKZgz6HZjS87Lu9KXWnHuf/Xek69N0TvMPgOu2UdIadZ3gqPGj0EB6n1Q
GfGo49oVQtgOWYG0zp+9ZWXYDtybK0baIxvpssDakKqdaiHldXS8RT/YBmxS84Bnea8mdKDBCpjb
BSATvFdvPF8MDJnE1JC9+76HTkj9GrzS3kfFGLQ6vQhXG2rraiPvwk7FuIfXFFZjEBIU1Ve61Ip6
l8+I8Tf90ZLdR7BDeIBxRg7+qHvrmDQxvFTaOWChckj2RP+4sAp5AyHj8UnoVJEOwIh5Be9vJOuj
y4UGRHGCELqqK5gPSLWkiT2pJFhEO+HuYmIDJ8ghUeK37U1E6nKREiUiOtdSuo7JEIM6gk9y2F4P
6w4D4ZyaDlIlyNPp5ydC+x4GggzGZDma0xc8b3uATHn4DEt6ECEsjfNEkKrMxaKtLxv2edmR7edB
t+kRQMZpQMZ8VJq5FYdZ3OojOr7wqi/N9PXh5jfQlTcVnR6DKoVRX+XIMfNXgVM7SUEUhjIWBdAU
278PYBDaHyzv7oh2eSzm0mHv9OhYcvtmxWd4B0f2MyHNGrlhfrPzF3w7NsTMfLcoGZ19IB2O8QNX
r+PHm+fXJYVTA3fB/MlYfZr4my8A4HvkTLXngE9xP4t7xReDyas0b+2fSwjNb88gj3v04NMWuiLH
5ypCyrd3m8Vv3yus7K4jLv8JhvE2zr70nKWAKHIwDCtc1BUKyCdIt+sArN2tt4CVMIQ4Zm4W+zE1
vnDnNwYKGKrRMfM+K+wFuSZqkbyKTxvKHVj6xSKeOmcN+eiXCnp5FiATt8+Bvr9jDsd3dSLusnUE
xF0zyj89MBM+Auvz9KggO7925KDiSO+l47GGeVFOZKv3yfoq2osUdqwfjOCAhz9/Uy3CmTjD3ND1
W+wU0PK4D97LnHlrl8S9PJa2Ta5mUxTLyUUlkGHW41fBKA0/qYYBn7MQEOWTPbye4UJfFq27gQJ7
soY9zNcZuoVIkMYc42Ee7cKAsT+VyNvu09zqYgziiPewsPsemp22TjbsyPuNTxPw6Jq+T3cos7cz
8Z7hqlOc2SlUudMHHRXVSZbe3ynQVZ4NQnLR04U73kPIfgHGz93zlOD319MgMHUX2bBywaZvPrCy
bSKrW6tkvQl2Dt9PmyeuLpXJ3NnaHbpFdsaN21ke92l8Db6+4pds/nmrP0YMX7vxQVxh6jzq7mAA
FesMkNq0X33Z4dQC72Y8osdeEIrRYdgUnJ9vIZhvONTHe+h1cH+5ZwH8YuCtO3OSAPvNMqTI+2cy
jw/vDvfQUog9MKo+HzvXEmuqccT1rrtkWpO8hg/rrgRSgIQBO+lJgTc2GPDa+aFHlUuXwUfEHYO2
aHpvvQR9IBXa8UB0ECl0F8gJD4/sMAWMuW+S9YPLABpH1yPok3fJaqqvANwZv0bOrNqUKpPjA6+L
KP68xnGYvIvPQRo8M6JFX2vY20C4Q3idDsS5H2lD8eXGwZPKPEhAdFOfzDMMgE0kJdhdZn8YfVzw
QOVFhfz5880vwlEaDKKClz9wzWTzsNTXE8bic5+sn9Za4TifPbw/15bHHSRsA/bRPDFzFUywTK7g
wvj7UUhZXlmPqCQbpXTvfDHTOd9moQr98zdI5akCsDQKLVyWFyRWKCkFV6S+C0f1lJLjrAcJpWxV
yalIVPS7j9Pm5yTQHW74e2lTOo8pr0H2hXqC3EYZVj318996o/jBag2Pa3XLE7wTjGBuk8XzPoJQ
WTpC7pWvirlzzwzc6hcx/bOof3N7gEA2O0RsEDy8TR8VaBxJE0hj+Swme65CefMLRNErxVufj5aB
Q5ioKLgKJu1ZT+nlvI0aZDScD5ZNr6E2DVfivS4V+EwfKQZjyzBIiZg1oS04CFDQzg/MiM99scr0
HMOg0CVkytxjwP1zicG8alMAG/IE83UWVqj2bEnM4yoNNF9TCdKgyYI9ys/FNL8WDF3dkJCqFxe6
zuYtBusOP5EnNZU3dzKEcOGchOh5plOuIVkKn4N/wPueL4blLnIVvLutEPDBMfHWHNoQxikjISVH
ex2nQMigY5h60B4DX19er/AuI6e8ksIRzGSv1GCGcX/4BLtTlAyrUscXGK7nK3GYzKC70k9WcKfS
h7hjqSafx/JdYRLEX+LiiwPmY6dZ8ih9DOQ31qiPO8F2YWDMJTnhVh0o64/r3+edT7chITmsU1lQ
1wOWN0I4G3wKoaieMnQ8TmSgJd9ZsDiDI56TK6W/vC5Xb7MmRhI3xXfimU5qh7RA5/NQ6kMjSPnP
rxBVj2tAS4W2UHXvFYawnpM1niIs+6/oS47xAxRjErE8mEMmx9z3G3qbHs1wX7xM5NihPXDX8iYI
KjZcon+tZ7PsD4oPWSfWsYz7sZmCwzOVy4f9JLE1cs2a7aAFtnqCvC/VCs49kRkUzKcj2jU+DVMg
FxxwauWNuXQyPZq5Qg7ne6Hhpcp4ff4aqgB5Yr+IjXYETKf7N4Nf/dThtdhTsDxuaJsAOcrodx7p
zw+jdXbRYTxxw7zVQyFGMQ3Ek6vrv3wCb5/69ecnxy3PA8fqc2Tyu65YAPp2kE/PC1G9UW7I3nYZ
+NHnMzq0BgIbP0nhL08ed3dC12NYllDUpQm5H4splvejDKBYTnXAtEdNXz7NlMPNnxLnpWdgfXNh
+fPDWFKauJjXWHQhYQVruz9xsVSMOUKe40diho83HfEV+fA8gAXLBj3pi+hdL4DDmo3nXh8TKvqp
K3+X2SSpdmj1iXr2DMbStYP1wWoDr3VDB2s/zEmyd1Z9HfozhP43v6ADxLbOXfDOgk++S/FXfESA
pqsRAqXj+b+8vASzIEB48GZiCte7Pk6KmspRGMsBf6lRMdJhr4CNFxFz2HMFwfUQSh7ThFhCz9Zb
MrZypV99lzoxpLST9Q6Us78jrj2oOr/TLxdxqx9E5d1B75XrA0v75NQT0w4ajxZJvk19vATickZY
4B//2PwdcU2Ggmm/vkKw5fVgW4+CXqSuly63O4uCZ8XRde4SC27rFexO0ieh673GQL/Wz4CPdL6g
/eXog1261ng7H956nuoUNl4Y4f3m35ZwpxnwqB8DpGINJmNUOxX4+fd+py6AXKOzIdFs5lCS7b+0
sy63DjR7vCD3xmbJ5s8M2HJehPtxPno0NpoKbvmUHF8mTMba1xUorxohJs2Oxf6Xz5fT9/znp75i
ZvvwahyvmN38+Wovzhc4Umig2+Z/sSUWOSxznQY75rZLFudwGX88LOBG/B5m5Jzugt0oMwlO896b
iRHXP76FDxf5QFe6P/iwS48F8iPggzmsjpxkKDHAa8cAsDxTxgVSA/fITIzOIyIr2tBabwPSFzMH
3WP1XVhKFQ7W93tpqJBOwu9+oUPQDw3tHNzCpTsS5J4dqo+uAgzw00ftBrxkz79NCzY7L0e61Hve
TkVXToKGqgbDxuOoqAWj9PPPrPH4FF8Uh66ctZ1CDh5gEtLJXgcP2eFEjj7Q6Z7VHil4CfsAy9/q
RlfhHjFwuOgN7re89aXe14Y9qETkXBSr2DeCdIHOGa3InOLMW2QHZ/AaPGOiL3geNj1WfvyPWJXL
JNNj+c5g20/iy16nL796dG1xGrwuBx6sYmYH8PO+qCh7vR6ActmFgZ89e8XriZbNtH0+6N5vVkBB
VNH1VYwXyVaZ2/Z6lk6SYGbAE6c8cm7Fm7Y/njeHMCdWNI76OqxTDvjr/YGCwLa92XEMDmpvOQne
z32dTK/3xMB9cu4x2y7zgE8PHcOH0235oCkSmvGnO3w3+Ijp7vgZ1kCWA+i9xgLpj+VVUF865lD5
yC+CnuCY4DcX3sHcfStkpJOp9wOYDRCagoicE8SA5j0qoWTpCYab38fjTcBw4wPEj6dL85dXNn67
8VZHn8URfSWDSi8SbLyFJ7jlIPOAMQYsow77SHvzgqQJLbqYfT2MryXXIAC02fQqLMBn7A3YjFm7
6b/icaI7K3JCUpn4m55RPixHkOx0g+jnD9+QTKkZiOIIEeveWcO+RTUP43MdEXUmTrPshGctqccX
ItriavrschcLTvpDQoeDsw64jTJG1DPZxRfNcRr6vAkcFG5ugrnjXqU7H+98yN4ZZ+NFY0Gf3Cf4
6Reyuv1QrLez1kH/e7lsejrr63pXUzhB+g2WYYfprL0q7pdvUKG+lYFW61SBYKh2yBhKQOnJhiNM
stre/GUFSGuecriLj97Gj6VivCIJQtbwTpiGNBkWeBUUGJgnLgCvS0XnWBAlWMGlR/5b2INZVOoO
knLHEaWuCjDlsmzBis1YohUB4y1AWG2oO3qHmYILkvlQtAp8i3lCVGUyGnoQuRV+ZOuA7B9PI6OA
f/URS7oEk7mjpAawjO9bvnjqO+ewTbyBvCEGfIOkRzchhWkl+QGk/WlYmATMAEo0J0j9dDqNfDmG
znVxyEE1QbHu8K6EWhwdA7LxsQl2MSNNnx4gCz/ygkqNX4OAMXwUwMAY+J05CbAjCkIX5Of6ZHA9
D7/LaiL0jM/NbK/pBWqToZJzO5nNd4ArJzf7cfnzCx/5EHKQ+HGJ98u78pbWyHsoVJGOm+uE9bVX
wB1I+0MXgDzHAL/5CYKdw07Ef7n6IM4vEcPTrnXQ5qf13bKW3199CnaZ/ih+eg4gK9jkrlOP7rbz
J5NdeyTF55mB8RBlHQz63EIeKiEd90zHw9mLE6I92HpYfv0NYcc6Ad3q03CNzhZE32rEDNnNlERn
DcOd/zSIOdtismLvWsFtffCvPo+bHkiXxrPQIU1Xj9Ze9IUy+zgHq33gC7xWGQ/J11dQetw/f/V/
+zYE0H55Dfz4FzwMtAhq5rgOLV8UFciCnEFOQtRkl8uyIUXLOSQavqWUCulLgsXtnRCPPXmUr2zY
geD2iohL6JDMydy70M5p/OPPgGp5rcHrFTwwJ+UTXQ95FAI7X+IgO28Tx3fD1SSV+dRYYpuPN3kX
g4PEmUxMrmoM1teazvKvn6Kv5y75463vY+MFv/qzovjiwhMIEXKTb+5RmbEsOOTdNtFScQl9rbwN
2Vm7BYJUJsmUhPr4O6/Eb59HOh/RdQSd3uvIa61TQc3sUwLb3+HgtPUf1iSXasirSCPHE5Mms4S9
DNhEUP74y770HAW+75pFlMaJhhXZ7ihZ3hQRN7DqZuR8TgD4VOvkEB/ageTMnof2+dsg7fJhwfwh
mIHxRMnG+xrv88ilC9ToqQr20T2g65u7lEDq6gAX6VEdxq2fAD8PuyHHIHsV63wVXPhtryJx+hpR
unTcHS6DuCPIkb6UclnIQOFmJ+Sw9YMw4x4waPHDxfMNz974ma4l/OnTkeZCgoO3z8Pl1J/Jzatq
fSz35xJY0mQT+7kC/YOfVS398qvFPptmnbiPBecPRYE86ziZ4UtsYdAkF3Jwjl9v+eWnjZ8jxc2a
ZArVlwXh65ASo756CaXDsYfRcgox6zbVMKVyu+mPmuA9d2sKwioOD/AQOMjcNRJYWXXH/HjQrx+r
r+5wvIDQUfutvsfDOqm+BSLsV8SV7PewmvvzCHeOPAXzjsQD+fm1KrqW6HCuLZ1zHzsfvoLtGwP5
ePLowXqsgH08n8EXXz50VARFgVt/FJnCldFJ8diNUPlcjsTvFQu0J6ezYOCWNbpNbEZXIkghuBhf
F++D3mtw6csu8MDliY5eVXvrhex5OBgSR/ydvk/w0Gl3EB/UDB1Q9Cz++sk/fVYaZ2mwTM8hXN+z
TOyf30SP8g4981ihrd9Gl+K+6cV7ZTE8s60+HyV+heQbKJt/i5p501vAYcUm/pltven1upTgolmU
BLYxU2L6pQa380U0Hl9/+aqF9fn7DpaWHcDCnZtRHuWFIk1YI28Ux0MPNj6OsWDt6K+/BaudbmF6
NS7FtN3nX78YnammDsvmj0Av5C7x0uOzwXyurLD24xw3Pcfrc1IeY1jdwxEZ7vP+y78tEPIOBjs8
nQd6fIUYeiB/bv66TIg1RdzPr2NpLNWC93wvBFuew9LGVzlggBX++Jg6iV2xXt/YAKpbVgRJr1eD
+Vm04cY/yWHv7Zu5VuUOFvGokcx6tfqWZ1q49QMxzz71AT8/ay7/f0wU8P/9REEfuJgcdr3p8eWD
dYFM2wO5E9EG9IULA3aaZxAflh7YF2fHhTKL9sSN2H1D0+A0Q/nd2sHL82YwFkeHgadOUvH8PreU
5kw5Ap68vWDJouuw6l87h8q17JB58yY6OeBrgdbO7sT2+ieYPvU8Qj2JNGLXdV6QNxPzEIDuggyE
Rx0f7YmHCAsS7ttaBPOLSxgoPtoVHdr+XZDHPYEgXxuFWI35aBbL+1ZgvNsWfpIo04fg7GkgOFkh
OubloaB3prTA9n5IFnldQRwipHC+LSGyv+ZQrKUw1CDliBpcJ1P1KL5HMzwuVoqcoo7AiNJzDF+a
ExCj9PYNWcx2BZVyNpBZecdmeXxNDB/CyUJBIE7DOHk4lqj3mvCinpWGv7JsC48ZiPB76q2C3vdK
L7uyNRPPYAlY7WdiA4JgG0hK7Xs46KceymLOEuXLxcUcnOa7VMW1g0zDi5KFkRwDop2hogKwb0D3
p0aCy7LoyAiwB8gNpym0z3GEXIe9gCUaqhlq1zIOoCyKdL32oyUpTVIQ583eC3I7KCu0vyKLxdas
vXW9VCHwbsaAxVO9NuPkdSGo2rOCDkNvAfpiEhec07FHZ6336Zo/L5ksHFcTLy338SYoORegqvcH
MRJPHL6D8Mng9NomMEh5pmQfXEqYWU9MjlzZ6PPFODEg6CeGGDsv9Qam5C/wGjcokPrapPynf7by
7Vu3yLhityC3exnDp+tR5JWs762X5YJBV7ss8fNyKZZxeYTAfpoW0t2o92gdFB3sDiwMgMNiOg31
fIG5f2ICvuzjZjrXoJamPbME442ti0Ve0hmuw3sNprFsCyzurVjiP2uClxv3bSg9jTUAx+IaLF10
1kexaEt4/TY+ch/saZiRrI/waWcQHY69l1Dx1HTwJGCB+KsIirke3hCe7s0OIT4bvdVZcgF+7nZL
nKnGdPWWvIXy7sJgORT3HpFPNQMvcCzI2TPFZOxkJZT30eyjaB+lgN7uaQjT7Ckj0/SiYXm5BoT6
7e4QLeG0hO/Irod79LaC9RHhYRXRilmUSwwxevwe1vEBe1jP2RCUtSjT2biZJfgy9gkdDv0AVn1J
eHARxpxobXSka0/kDGwd64AdsmmYSYE1wBbojfwX+/SoeTAqEGjAQ4dv3zXD955fANgVMeZ3ZjlM
+SpB4H/BOWC2DiG18GOFneTCYPyWGEze8MHwcI6LgNe9Xp9Ujefgp7afKNxF9wJnQnuHhlqqqIDs
W5/RUefkaQ8XEmjZbZj90zzDZCYuOXZiAlZIJB/WMPsgdN0GgpNLywAkSSJRKXcoWppeGWgM4Q7z
lvemVDsbEkgkKUL23vzoy2H4ZnB4yyY5YJPTR9heSgDfXRzstvV+e2TW5Jw77/EwsN9kfbDMF5Zr
PWLhW1/19Y12tQTY9ooOi5nQqcytGCLHOBB14mx9PV/GFHSZoyBPqWtvnrwuBrvPesNwKY/Jknh9
D4rtO7Pum02L9f5gOHBJ8Z24HLsW68TCu/jN3SvS48gCK0NEAarXe4nsU694iyC5GhwsOwnEo9np
v/MBrHP8Qm5Qf3Vav4gFP4z7IKbgfeggMqEiy28kBaJcj3/nDdpeHBNtjPxmMkE9ys7HYv7q92pF
xUUq3EoOdhcvAEudH1P44CtE7oqIGnrGt1g6RsYVJcfoDWj1tmMwTFTG6Rv3ySqwkvTTF+Ro9SlZ
v5dPDbUk8oP91dwPlJwmG5ytpv2rT4ux8heIcoEhZuNN+uyeREMsSqwFLcYWoOpjqWC1Ojw5XsQd
oKeDq0n2yzxg8VfvhN2AwdpAnQSV6A77bUICCKiFZNODZMlW2sKKr0xkffq5GI87oYW3oP4i9cZ9
h/k7YAwOqnki2jlCYLlK1gjHaaHIOvQ7Or8mpZZp8h6wUNdSMZRvRZKtfVwhk/e+xXx4iXcw3O2Q
3HWR6Av8qpl8rXBCXKauG/o2cQqA3lZIA1ho8K8eiE4xBnAUoYcffWPD/b5jA3rEu2E1c1uDyvPe
Io1ikVIaXA1pSd4s8tNy9ejh4PtQE+9H/NxHKZ1D7mwAnQ1BIM9i7K2FevEBfHQp0lJ818eFiy2p
db0TQq2oNPvw7GKBZVGDvJQ9Fu1Fdkv4LFOBXA3zra9N/63/9s9IPYEunKT1kCCm3daHgGWo5xzq
Q8wGv/u1GpLiwhfvmEh/RYZOtnoKX3aaokAR0UBtVrjA3bIWyLdKCmbZCFNoXc0SHV1x36xuFM9Q
E8sjUdkoaZaP5PvQOIQiClixS9ajGufgWo4ZCfbi+3f+QrDftyxKB28HcLREPXzmtYqc7Xwve9d1
pXtW35FuRD0dYuYG4W43l4GksrlH3Lc3SlVWu1igteDh3QPkUH9ECnIWtmxmbydIkDldROQ9Simh
z4NtQ9+0WqRczl1Dz/eTDx0UO4G1eGoxPm+qAc2X+Qqq8/mdkO0+QOlT3DB18QksadHnMOpJFQw1
6xULXu4QJON0RIilFzCFxUeDcSc9/tZ74tS7DdJx0omeYW5YovzAQc80MFEkjlAsnS0X5hfskcPF
PBdrI9QdeGOXIvfM8gDbfdfCCmYy7lfT9Ua0m8PfecN70LcJ3uoZWAFUSLK9P3J/vTF8s/KXWA/P
KOgTFxh+NbcM1hVfh9/rw/7NNkQTo29Br7iEkruCDxZY8wAwtnsepnfpGCzb/lGDXRSYdpJHbK2v
way/VgN6i9ETv2GfA70EN1sKsGgQhZybAR/tFydLn+sNIUKLApO+6uUDim8BnXA4LGrRBHL3YEW8
n/ouGQUucuFZGUdiMt7Ho7RkofTJ3SaYw/ObLrLrBLDLHTXYbfdz3SGayo+1Ckj5O3/bfgGVRhGy
iPekNHurHIz8qUObf/FoGZQVxJTp0MEzxWJJvKqHj+rsIAQyT8eny9jDQdqeobKWTTPLRcPBUyeo
yAY1T9cFUQiuwhhueuvR5e0aX2nza0RVzlWytPlRg+qQJAFHvbRZP0gOfvpLAiOT9WX3PEGov2OG
HELzMszn9m6JKSPZgSCa/fDRwaAAcqVXzEc9541PLu0g37yPJMjE8U9/wcl6CjjhvBtYuliM4dDZ
ATFqjwffhmU0sH1eHHTih07R0K+wzZyUKNn5rVNa7hlRPhYm0refn42TpIC8a1RknnEFPpJ6CyB5
0UsADdYEHGzDO3yFWRzAvIyKRVxOOfRexod4Des16/5tVVB7liGxx/rSrHaPO6CrpYcCS8RgZEDT
w2MNwmDH9xdvMTXeB/bzYAXSte6H+bffcUryYM24Wl/mr+7DnKkYZH28ulmgpObwp280j14NlSFf
w9V777FIWFkntGQZ4K3ggfe0Nxt639s9rILaJ8e4tIdFzFUBeI5FiLpyB523e9z+/BVmKtFtxj5N
KqiZ94y4uDY9ejvbHFTE+xM/+4hv1ki9rlBTyxPJI/Y87GHJY+jvrAeGCWvou1yjFnBWkWLpXVsD
5998H2IPTsQearGg6ttg5DAXOHKxzLCYDXOBsBhP5E8P19auc7kczy/kLmw84MNSBCC1yQHzxFMB
N4MXD7lo/WK4ikWynqNQkDd/jAwemwN1z/oXbK+P3JLNvImLMh+mlrQ9A6XPmpEtmhp+Ezb5+Q26
j/ZuBc2b+cawYmt9jtIM/uWDZPXuBXUOugC+tX0m/r4cm8momQxw3qsh+oznYj2rIQfhdHWJYnHn
YoRcWMlN7NwQskSDrt3l68IsxSvyU/EBqP5YfPnXMfnlTxz2rwyWfDURF5RsgQ3XDsHAyhoyPvgA
Fta1BTh6rBoMHNsXq4wkA/z8WKrgI5jlNMzhqRq3CTvPKegY5BoMIgsRmzM/A61eJIevzHED+GJV
fb61Jxem/mT/6v8wVkY6Qut1KIL9w8zAfL25KTxiMSBaxSnJ3iFzKpsoXgLYinIx4jbv/+6b+GAf
zTDg3JXeb3ZC6JTNtO/ToobXEmfIOZjdMDXS0YV1m46kzFid7tYlS2EDs0fAK31WLNcaBOC3P4fO
PCXr5bFf4fFolMGFmN9irtJ0hQaNN3NgKsWSDtVd3uo5ynhPKaa9q7mw9E9f4vb1i359oVPgAhh3
u68vQLb8L3eBp2GOx6+Gjq+pAnWbjUgJzn0xm7IZw9gSWmTnNWjW8nnRYOU68p/+knyvhmDzj0hb
Iw+QgYkD+GjP7p9eTVBNBfhKsyTYS3275cEbA0HR3ojKR9xArmfnDtdlFbG4q4/NLz/DC9PEmOe9
qsACKwnis8yEYHfGCh3vxk0B6GRZxDz3ckGe5juEqSWEZOsINVu9CKCWJD7er71Z/N0/9nAckNl7
YzEz3jAD6Vg023066vN7UgIoOUVNtBzLyXh8CRW83JszOfRmStdQmHIgPzo3CJpMAHTLazK9rSty
P7Wl93IxcHDz80hVzkqxF+5hAJybwZLD0+STBSwnA8a5VJEgzgqPuvjhShWuD8jeOlirxEodXBAM
idJyyeaX2homPfEDVs6+A5lfowD8TCyQ5nFNQ20kVHDo3ODnH4eFzRVGvhvna7C/9T2YplVwYZoS
izgvsy7mgDtffv6WaPvIBevpMn6Bt4qPgA+9zvurL9o7sXGVcyld5uXeA+1VRgFdPSYZnzfH+Kuv
/ihCfRnW+S4nKQmJn4sPnRpno5N+/iUwSwXwBzXJZPdm7YjxxI7O3x8MD3T5biDlynENTc5aDoi8
nIjL1zoYm8nmwC8/oFhsmrHhyhDy0ZoRVeJMujylYwmcj8EgL2Gx185pHEuHc1gQn5QTHczgDOG3
sy+Ywkjxlu7rr2AXzRVmH/RGV/4czMD04jnYf8ydvpwlpABVvl+I8jkbCTUfggDGE+WxvPGkxRm+
mhB1wof8/OpW75jffcSLFxUeNR+zBNqvFwbsQnMwO7L/BR22ZRR+uFVfcteq4S2ovnh/6AdK870T
g9P9uSO+VPpJX6flHTBJp+GdiltvQTHEQN8dOGIhzwK7j2QE0n2tL8EaRyFYfQFrUqCJHmrSqCtm
nOYdvLZjikqlTBu6g+ws3YOqQqfJ85KNb6zgppzrYH5wCZiZmg2B+zIo8TY+Qg7BuYdosRQsNyLn
0QKXX+jqoUqMGVsJtd++AuXnVcO1EsWbX1hieNwZJ3Q5m1hfub5XpKx+9sj+mJ7OGdOxAurrXqDj
rXx7a6RGK9yd1iemSfT21vrB+OCX30qTtXTCQsaHG08INn42DJw53kE5nl4BE4lTsZ6jiyRt+SMQ
IhMDeiBzD1EtQOSsZqX/+XFyZmr88ryQUhUtpbxb5gKht1jp46MtObj5leB0wE0y+G8vlw5eXAZ1
FM0NZUomh0PuouBl9o+CPsx3K2z+kgQf0RmWoHimEEZXH/lRuSYvVWN4uP9cAdE7HHv4rF54KEbF
d+Mv9ZYnQQtXxFjIN1iTYhmtFhwt10EGi42BLsw1hr988effi1oS4ANXEToY/Vis7aW+w6iWenJo
+t5bjSgZpY3vYH7xnsly8voU1th74Z3uxTqnvqQcCs5qIMeruWI6gSqAGdN0KDDKqpmO8fYAwiFm
sZyIfDN2R/sCGfY4YalmdwVGamxBISo4gi7Z3KxD/4lBxAgdCiNuB/BIOAwl0NZEI9Gor5CVYvj8
ejjAmz+bxzaH8HTBcsDVXgbmR5vy8P1gCdFCrt6eRLRiCB7tnQRTtveaOYgu4GmnEKEPLb12Z0Qd
NEk44rb09gMZ77kFPgf2HnxGU6HEI4IGNp6BbNHsG3rY+wa85E2GWxv7w7wzolYO5gkSP2Fbb+Mr
GQRNW5By8w/TZQUx5PavG1Hk6Kb//DXoxswiKuAsjwdovUAqr1Mg6vVp2LtI8OEntxsUxdzo/eX/
U/ekxJnrYADnszP/+BlS9tzszba5pL8OYjB/uTVZPtF5hcuLGsHe6P2EAsjwIIfjgQR6qRa74htk
grNYEG96nqxUqAzYfJ2cqBs/Xt1nzEHHOejoAHv9X3yRX9Yo4FGfNjNrXJTfn7FQ1sAb92mUis5i
QOJ3rFpw+/Sa/eW56Siei5XrKwUur8XAQm5OYPSO/h3Y5sEPVi4aknlMYwHul/mAojnaJRjvD/zP
n/94IP3VCygfuiM6aqJAMdf3GkT2JKJAK5/ebB6PF3F7IlsgGDVDf/kIWCSu8fdev5tFkhwM98vW
QdyzAAyX4OTCbBxJwO9MOGBXwBk8WYKFmUA8Dos6NCEIJKATvxXlBKdCO8NrNSbEOGOXct7RuEN4
vCIs7E1HJ2bwYEDHslwg+PWtmb9tEUtOE1qk8MqS8uOD+0LNS4JtfatmnYSPAjsuNchB6ltvnIfX
DNHH0Egkc68Gb+sPxKV4bX7/7a2GZLtQOnQDQrtsoDgQXlh8rs6ItvPkzeWkziDAwAj6rd+xOmqh
QP40n9FFrvni42hyK208AHlRCZMZeq0BldP9RYJedIr5wZUCpMlrQDoXPQtMWGiD3/6KvvkCk1Yz
/S9vE89ng4YnZ4RBKZxa4hSm4f34E2RYNBHkZmvB8+dghdz5VQfrnVPorsqPXzDU9hGpkHsVdDCn
EV4hjrBk1V6y46ObBBJLyn/f4Ciovvcx3J3mJ45wtKNjw6UxXMzF2epDOMwB97jASaQ9lvZ16237
l/7xkm7rz8zVpLpwAdAlWhqFCRXKfQpV8X4mOo00bxKXWw7P9+cTmRFWBz4WJkP68TidRrWHi+gS
Q3sF8paf9WGPd1MIRk9WkfHysoHa+HyH62cFmLXEFqzM4XgXBdLtkXqPhGT9ElmDtZ2tJOhEB6y3
y5BDvGfexBZNu+HD51WC+vEAgkXiXnR2J7+DzHThkapxwcZ3ZgE4MRAw62bx9oxN9g70d8gEg1Or
3j5nUgxvbv3B4s1shvmYnlvYM/YH+RrbFdOq3ku4nQdiZNhtypf3riGhsNx4LpfQ28FeoeuCGe8y
jxRz4xEONEb2JtbGy5YjeJZQl0sDHU69u/GEtofzGV5IevKu3hSusIIddmW8bn6PomB7hmouMFgo
zakYI9nL//LC4kXA61X5KPzyNDnJXg+4100pYcbhCW9+Tx/qvbLdZyJips4uzfzkyg6cFTwSreCe
Xt8Pbw3++L4ns+9iebk+Aze+SX78eWfVjALNc0gC9kwf+rrfB50Yd8IjWEcsFW1y80IoNi0h2ol7
go2n8LBITysxGu+s4/VSxRAjBhNjj1+UesFD+/H5YG+bIn0ehm8KX2MaEkvqsb7WiHHBM/aWjZ/t
6HTXpDuM7tJAvHcp6v3z5liQObQ6cpI60TH7WDjAPDoFaSsWm3ltc+3XXww+t3pJlhOofLhGK0MO
Zd8P9IxPMUwsIUfRwPUDqZniDiNuegRsKur6xhtseTozPF6l6DsMl73aAUcPPWQ+euiN7km0AOO1
RsAh7Hu7apU0uBQQYWbjlTPkLhV09rGG1CU6DWNozhZs7KwnCGSD9/NT8OWnJ6T70WEg3kHv4ONb
hUgfI61Zza/9r/rhfcpLQ3ZBOMMbXzVEu0akWPd7q4VZNS7467AXSrt7oQB9MnmkD5Fe0Or1zn/5
Hrkpe05+fhGgcNrjz62OitE+iTnY8iRSfW6k3UEtMkie9EzUIzfpuGD3IWi57IKOMGOSkeEuPoSn
Ynump6gWnx8f33gQ5lovK5ZdrtXyna+uKJ9ro9n/eOm2/8iyvUNB+d2oSB/GfmCZlg0l8du9g8da
B0RlIlqQgcl96MiWRDQZX7xZ8Eb801diPfrYG8OTYMM0a2TkbXl/2eVuJR/MQ4aQSK9NG096Ctsy
zXEtRd9mmVbBhm3sJcHeNHNv460MvAnnPGBsMUhoFRQCXGSqYqYXPwXxz3oG+f3bwe0Zf+nYHhUM
b3H1JurG19dMaEuoNFGBNI1rm9Xtu/iPL+2Eft/gg1qk4NcP3t96G3C2Kaa/fIiBWcrDwnxVTRb1
lkPIy+KBxm/tDgtjNImuRZ8Cl0JTg/2nABjs2L5ZSjcI4K+fUGz8jFdzu4cb38Dz9WyBlZwP+H8/
o+Df/v3f/+fvtyB0/e3+2gYDpvsy/fP/jAr8M7/l/+Q4/p+E//ttCXjMq/s//uNfQwj/+Ax995n+
19S39/f4j//49/3ftME/pn7KX//XX//b9n/957/9FwAAAP//AwDmi7xYhWEAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 7bcba8bfb902137d-ATL
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Mon, 24 Apr 2023 04:38:52 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
access-control-allow-origin:
- '*'
alt-svc:
- h3=":443"; ma=86400, h3-29=":443"; ma=86400
openai-organization:
- user-dvhgf0lntotpa5mrg7zv7aur
openai-processing-ms:
- '153'
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:
- b45bb5c2f0a8d630fb99fe0cc9fd89ac
status:
code: 200
message: OK
version: 1

@ -62,6 +62,23 @@ class TestWeaviate:
output = docsearch.similarity_search("foo", k=1)
assert output == [Document(page_content="foo", metadata={"page": 0})]
@pytest.mark.vcr(ignore_localhost=True)
def test_similarity_search_with_metadata_and_filter(
self, weaviate_url: str, embedding_openai: OpenAIEmbeddings
) -> None:
"""Test end to end construction and search with metadata."""
texts = ["foo", "bar", "baz"]
metadatas = [{"page": i} for i in range(len(texts))]
docsearch = Weaviate.from_texts(
texts, embedding_openai, metadatas=metadatas, weaviate_url=weaviate_url
)
output = docsearch.similarity_search(
"foo",
k=2,
where_filter={"path": ["page"], "operator": "Equal", "valueNumber": 0},
)
assert output == [Document(page_content="foo", metadata={"page": 0})]
@pytest.mark.vcr(ignore_localhost=True)
def test_max_marginal_relevance_search(
self, weaviate_url: str, embedding_openai: OpenAIEmbeddings
@ -117,3 +134,32 @@ class TestWeaviate:
Document(page_content="foo", metadata={"page": 0}),
Document(page_content="bar", metadata={"page": 1}),
]
@pytest.mark.vcr(ignore_localhost=True)
def test_max_marginal_relevance_search_with_filter(
self, weaviate_url: str, embedding_openai: OpenAIEmbeddings
) -> None:
"""Test end to end construction and MRR search."""
texts = ["foo", "bar", "baz"]
metadatas = [{"page": i} for i in range(len(texts))]
docsearch = Weaviate.from_texts(
texts, embedding_openai, metadatas=metadatas, weaviate_url=weaviate_url
)
where_filter = {"path": ["page"], "operator": "Equal", "valueNumber": 0}
# if lambda=1 the algorithm should be equivalent to standard ranking
standard_ranking = docsearch.similarity_search(
"foo", k=2, where_filter=where_filter
)
output = docsearch.max_marginal_relevance_search(
"foo", k=2, fetch_k=3, lambda_mult=1.0, where_filter=where_filter
)
assert output == standard_ranking
# if lambda=0 the algorithm should favour maximal diversity
output = docsearch.max_marginal_relevance_search(
"foo", k=2, fetch_k=3, lambda_mult=0.0, where_filter=where_filter
)
assert output == [
Document(page_content="foo", metadata={"page": 0}),
]

Loading…
Cancel
Save