UnexpectedResponse Traceback (most recent call last)<ipython-input-36-42a89db32382> in
----> 3 add_vectors(embeddings, payload)
6 frames
/usr/local/lib/python3.10/dist-packages/qdrant_client/http/api_client.py in send(self, request, type_)
95 except ValidationError as e:
96 raise ResponseHandlingException(e)
---> 97 raise UnexpectedResponse.for_response(response)
98
99 def send_inner(self, request: Request) -> Response:
UnexpectedResponse: Unexpected Response: 422 (Unprocessable Entity)
Raw response content:
b'{"status":{"error":"Validation error in path parameters: [name: value \\"status=<CollectionStatus.GREEN: \'green\'> optimizer_status=<OptimizersStatusOneOf.OK: \'ok\'> vectors_count=0 indexed_vectors_co ...'
下面是我的代码:
raw_text ="some long text...."
def get_chunks(raw_text):
text_splitter = CharacterTextSplitter(
separator="\n",
chunk_size=100,
chunk_overlap=50,
length_function=len)
chunks = text_splitter.split_text(raw_text)
return chunks`
============
`def get_embeddings(chunks, embedding_model_name="text-embedding-ada-002"):
points = []
client = OpenAI( api_key=os.environ['OPENAI_API_KEY'], )
embeddings = []
for chunk in chunks:
embeddings.append(client.embeddings.create(
input = chunk,model=embedding_model_name).data[0].embedding)
return embeddings
===========================================================
`def add_vectors(vectors, payload):
client = qdrant_client.QdrantClient(
os.getenv("QDRANT_HOST"),
api_key=os.getenv("QDRANT_API_KEY")
)
collection = client.get_collection(os.getenv("QDRANT_COLLECTION"))
# Create a list of PointStruct objects
points = [
models.PointStruct(
id=str(i), # Assign unique IDs to points
payload=payload,
vector=vector
)
for i, vector in enumerate(vectors)
]
# Insert the points into the vector store
client.upsert(
collection_name=collection, # Replace with your collection name
points=points
)
==================================================== =============
然后我拨打以下电话:
chunks = get_chunks(raw_text)
embeddings = get_embeddings(chunks)
payload = {"user": "gxxxx"}
add_vectors(embeddings, payload)
那就是我收到上述错误的时候。这是什么问题?
我尝试了网上的各种建议
您正在使用
get_collection
的输出作为集合名称。 get_collection
返回有关集合的信息,例如您在错误消息中看到的字段:
'[name: value \\"status=<CollectionStatus.GREEN: \'green\'> optimizer_status=<OptimizersStatusOneOf.OK: \'ok\'> vectors_count=0 indexed_vectors_co ...'
解决方案: 应直接在
collection_name
参数中使用集合名称
client.upsert(
collection_name=os.getenv("QDRANT_COLLECTION"),
points=points
)