client.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import os
  2. import sys
  3. sys.path.append(os.path.dirname(os.path.dirname(__file__)))
  4. import grpc
  5. from grpc_m import vector_service_pb2, vector_service_pb2_grpc
  6. from db.docs import DocumentsRepository
  7. from db.user import test_add # 假设这里有必要的导入来获取open_id
  8. from config import logger,GRPC_VECTOR
  9. async def load_user_docs_async(open_id: str, file_path: list[str]):
  10. async with grpc.insecure_channel(GRPC_VECTOR) as channel:
  11. stub = vector_service_pb2_grpc.VectorServiceStub(channel)
  12. request = vector_service_pb2.LoadUserDocRequest(
  13. open_id=open_id,
  14. data=[vector_service_pb2.Document(path=file_path, id=str(open_id))]
  15. )
  16. response = await stub.LoadUserDoc(request)
  17. # 输出响应结果
  18. logger.info("Response: success = {}".format(response.success))
  19. return response
  20. def run():
  21. # 创建gRPC通道和存根
  22. with grpc.insecure_channel('localhost:18600') as channel:
  23. stub = vector_service_pb2_grpc.VectorServiceStub(channel)
  24. # 获取open_id(这里只是示例,具体实现可能会有所不同)
  25. open_id = "_000QadFMhmU1jNCI3JdPnyVDL6XavC70dFy"
  26. # 创建DocumentsRepository实例并获取用户文件路径列表
  27. documents_repo = DocumentsRepository() # 假设这里有正确的导入和实例化逻辑
  28. res = documents_repo.get_user_files_path(open_id)
  29. logger.info(f"get docs {res}")
  30. # 准备gRPC请求并发送
  31. request = vector_service_pb2.LoadUserDocRequest(open_id=open_id, data=[vector_service_pb2.Document(path=path, id=str(uuid)) for path, uuid in res])
  32. response = stub.LoadUserDoc(request)
  33. # 输出响应结果
  34. logger.info("Response: success = {}".format(response.success))
  35. if __name__ == '__main__':
  36. run()