eliza icon indicating copy to clipboard operation
eliza copied to clipboard

feat: add adapter-qdrant

Open oxf71 opened this issue 11 months ago • 2 comments

Relates to

Add qdrant adapter into Eliza system.

Risks

Low

Main implementation risk is that the Adapter doesn't work correctly.

Background

What does this PR do?

Add a new adapter for qdrant.

What kind of change is this?

Features (non-breaking change which adds functionality).

Documentation changes needed?

Testing

Where should a reviewer start?

Detailed testing steps

  • Configure the env value below
QDRANT_URL=
QDRANT_KEY=
QDRANT_PORT=443
QDRANT_VECTOR_SIZE=1536
  • field settings->ragKnowledge set true
  • set knowledge field

Discord username

  • j0771x
  • misasky

oxf71 avatar Jan 15 '25 09:01 oxf71

@coderabbitai review

wtfsayo avatar Jan 16 '25 09:01 wtfsayo

[!IMPORTANT]

Review skipped

Auto reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

The pull request introduces a new Qdrant database adapter for the project, expanding the database integration capabilities. Changes include adding configuration parameters for Qdrant in the .env.example file, creating a new @elizaos/adapter-qdrant package, and modifying the agent's database initialization logic to support Qdrant as a database option. The implementation provides a comprehensive set of methods for managing various data types like knowledge, memories, goals, and participants.

Changes

File Change Summary
.env.example Added Qdrant configuration variables: QDRANT_URL, QDRANT_KEY, QDRANT_PORT, QDRANT_VECTOR_SIZE
agent/package.json Added @elizaos/adapter-qdrant dependency
agent/src/index.ts Imported QdrantDatabaseAdapter and updated database initialization logic
packages/adapter-qdrant/.npmignore Added .npmignore to specify files to ignore when publishing
packages/adapter-qdrant/eslint.config.mjs Introduced ESLint configuration file extending global config
packages/adapter-qdrant/package.json Created package configuration with name, version, dependencies, and scripts
packages/adapter-qdrant/src/index.ts Added QdrantDatabaseAdapter class with methods for database operations
packages/adapter-qdrant/tsconfig.json Added TypeScript configuration extending base config
packages/adapter-qdrant/tsup.config.ts Introduced tsup configuration for building the package

Possibly related PRs

  • #2121: Introduces new configuration parameters for the Qdrant service, similar to this PR.
  • #1417: Adds a new dependency for the @elizaos/adapter-qdrant package, connecting to the integration with external services.
  • #2293: Adds a method to retrieve memories by IDs across various database adapters, enhancing data retrieval capabilities.

Suggested labels

Needs Testing, Plugin_new


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

coderabbitai[bot] avatar Jan 16 '25 10:01 coderabbitai[bot]

@coderabbitai review

wtfsayo avatar Jan 19 '25 15:01 wtfsayo

@wtfsayo i'll review the changes in this pr that adds a new qdrant adapter.

:white_check_mark: Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

coderabbitai[bot] avatar Jan 19 '25 15:01 coderabbitai[bot]

@oxf71 can you share demo if possible;

Also please allow us to push updates to PR

wtfsayo avatar Jan 19 '25 15:01 wtfsayo

@oxf71 can you share demo if possible;

Also please allow us to push updates to PR

We are using the "trump character". The "knowledge" field needs to be changed to a path format. After testing, we found that there is a difference: the implemented knowledge method is only invoked when it is set to the path format.

pnpm run dev --characters="characters/trump.character.json"
"knowledge": [
    {
      "path": "trump.txt"
    }
  ],

oxf71 avatar Jan 20 '25 06:01 oxf71

hey @oxf71 can you share a demo of it working? Personally superexcited for this

wtfsayo avatar Jan 22 '25 17:01 wtfsayo

also can't resolve conflict or/and push change to this branch myself

wtfsayo avatar Jan 22 '25 17:01 wtfsayo