Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop Rust/C++ API and web server for agent-user chat with pgvector storage #12

Open
costa-al opened this issue Jun 15, 2024 · 0 comments

Comments

@costa-al
Copy link
Contributor

Description:

We are tasked with developing a robust web server and API in C++ to facilitate agent-user chat. This system will leverage pgvector for storing chat messages to take advantage of its vector search capabilities, enhancing the functionality of message retrieval based on content similarity.

Objectives:

  • API Development in C++: Design and implement RESTful API endpoints in C++ to handle message operations such as sending, receiving, and history retrieval.
  • WebSocket Implementation: Integrate WebSocket protocol within the C++ server for real-time messaging capabilities.
  • pgvector Integration: Implement and optimize the storage of chat messages in pgvector, allowing efficient vector operations and message retrieval.
  • Security Measures: Enforce strict authentication and authorization mechanisms to protect the chat data and ensure user privacy.
  • Performance and Scalability: Design the server architecture to handle high throughput and numerous concurrent connections effectively.
  • Comprehensive Testing: Execute detailed testing, including unit, integration, and stress tests, to ensure reliability and robustness.

Technical Requirements:

  • Programming Language: C++ for backend development.
  • Web Framework: Consider using C++ libraries like Beast or Crow for RESTful services and handling HTTP requests.
  • Real-Time Communication: Use WebSocket++ for WebSocket support.
  • Database: Utilize pgvector with PostgreSQL for storing and retrieving vectorized message data.
  • Authentication: Implement security using OpenSSL for HTTPS and possibly integrate OAuth for user authentication.
  • Testing Tools: Use Google Test for unit testing and Google Benchmark for performance testing.
  • Monitoring and Logging: Integrate tools like Prometheus for monitoring and spdlog for logging.

Acceptance Criteria:

  • The server and API can handle basic chat functionalities and manage vector data efficiently using pgvector.
  • Real-time messaging operates with minimal latency and handles message delivery consistently and reliably.
  • The API provides secure access controls, with proper authentication for every endpoint.
  • Performance benchmarks indicate the server can support at least 10,000 concurrent users.
  • Tests cover a wide range of scenarios with at least 80% code coverage.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant