Code Monkey home page Code Monkey logo

weaviate / weaviate Goto Github PK

View Code? Open in Web Editor NEW
9.5K 110.0 636.0 983.62 MB

Weaviate is an open-source vector database that stores both objects and vectors, allowing for the combination of vector search with structured filtering with the fault tolerance and scalability of a cloud-native database​.

Home Page: https://weaviate.io/developers/weaviate/

License: BSD 3-Clause "New" or "Revised" License

Go 97.69% Shell 0.60% Dockerfile 0.02% JavaScript 0.01% Assembly 1.11% Python 0.12% HCL 0.01% Smarty 0.01% C 0.40% Jinja 0.03%
search-engine semantic-search semantic-search-engine vector-search vector-search-engine vector-database approximate-nearest-neighbor-search image-search hnsw information-retrieval

weaviate's Introduction

Weaviate Weaviate logo

Go Reference Build Status Go Report Card Coverage Status Slack GitHub Tutorials

Overview

Weaviate is a cloud-native, open source vector database that is robust, fast, and scalable.

To get started quickly, have a look at one of these pages:

For more details, read through the summary on this page or see the system documentation.


Why Weaviate?

Weaviate uses state-of-the-art machine learning (ML) models to turn your data - text, images, and more - into a searchable vector database.

Here are some highlights.

Speed

Weaviate is fast. The core engine can run a 10-NN nearest neighbor search on millions of objects in milliseconds. See benchmarks.

Flexibility

Weaviate can vectorize your data at import time. Or, if you have already vectorized your data, you can upload your own vectors instead.

Modules give you the flexibility to tune Weaviate for your needs. More than two dozen modules connect you to popular services and model hubs such as OpenAI, Cohere, VoyageAI and HuggingFace. Use custom modules to work with your own models or third party services.

Production-readiness

Weaviate is built with scaling, replication, and security in mind so you can go smoothly from rapid prototyping to production at scale.

Beyond search

Weaviate doesn't just power lightning-fast vector searches. Other superpowers include recommendation, summarization, and integration with neural search frameworks.

Who uses Weaviate?

  • Software Engineers

    • Weaviate is an ML-first database engine
    • Out-of-the-box modules for AI-powered searches, automatic classification, and LLM integration
    • Full CRUD support
    • Cloud-native, distributed system that runs well on Kubernetes
    • Scales with your workloads
  • Data Engineers

    • Weaviate is a fast, flexible vector database
    • Use your own ML model or third party models
    • Run locally or with an inference service
  • Data Scientists

    • Seamless handover of Machine Learning models to engineers and MLOps
    • Deploy and maintain your ML models in production reliably and efficiently
    • Easily package custom trained models

What can you build with Weaviate?

A Weaviate vector database can search text, images, or a combination of both. Fast vector search provides a foundation for chatbots, recommendation systems, summarizers, and classification systems.

Here are some examples that show how Weaviate integrates with other AI and ML tools:

Use Weaviate with third part embeddings

Use Weaviate as a document store

Use Weaviate as a memory backend

Demos

These demos are working applications that highlight some of Weaviate's capabilities. Their source code is available on GitHub.

How can you connect to Weaviate?

Weaviate exposes a GraphQL API and a REST API. Starting in v1.23, a new gRPC API provides even faster access to your data.

Weaviate provides client libraries for several popular languages:

There are also community supported libraries for additional languages.

Where can You learn more?

Free, self-paced courses in Weaviate Academy teach you how to use Weaviate. The Tutorials repo has code for example projects. The Recipes repo has even more project code to get you started.

The Weaviate blog and podcast regularly post stories on Weaviate and AI.

Here are some popular posts:

Blogs

Podcasts

Other reading

Join our community!

At Weaviate, we love to connect with our community. We love helping amazing people build cool things. And, we love to talk with you about you passion for vector databases and AI.

Please reach out, and join our community:

To keep up to date with new releases, meetup news, and more, subscribe to our newsletter

weaviate's People

Contributors

abdelr avatar aliszka avatar amourao avatar antas-marcin avatar asdine avatar bobvanluijt avatar cdpierse avatar cshorten avatar dasithedirisinghe avatar databyjp avatar deegiimurun avatar dependabot[bot] avatar dirkkul avatar donomii avatar etiennedi avatar fefi42 avatar jeroenstravers1 avatar jeroenstraverskpn avatar jeroiraz avatar joanfm avatar laura-ham avatar moogacs avatar moretea avatar nilskulawiak avatar parkerduckworth avatar redouan-rhazouani avatar reyreaud-l avatar sky-2002 avatar trengrj avatar tsmith023 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

weaviate's Issues

Enable authentication

In /operations/weaviate_api.go enable func (o *WeaviateAPI) AuthenticatorsFor for OAUTH2.

case "Oauth2":
    result[name] = security.BearerAuth(scheme.Name, o.Oauth2Auth)

Implement the operations for the Google Cloud Bigtable Adapter

Implement the operations for the Google Cloud Bigtable Adapter

  • operation acl_entries.WeaveACLEntriesDelete
  • operation acl_entries.WeaveACLEntriesGet
  • operation acl_entries.WeaveACLEntriesInsert
  • operation acl_entries.WeaveACLEntriesList
  • operation acl_entries.WeaveACLEntriesPatch
  • operation acl_entries.WeaveACLEntriesUpdate
  • operation adapters.WeaveAdaptersAccept
  • operation adapters.WeaveAdaptersActivate
  • operation adapters.WeaveAdaptersDeactivate
  • operation adapters.WeaveAdaptersGet
  • operation adapters.WeaveAdaptersList
  • operation authorized_apps.WeaveAuthorizedAppsCreateAppAuthenticationToken
  • operation authorized_apps.WeaveAuthorizedAppsList
  • operation commands.WeaveCommandsCancel
  • operation commands.WeaveCommandsDelete
  • operation commands.WeaveCommandsGet
  • operation commands.WeaveCommandsGetQueue
  • operation commands.WeaveCommandsInsert
  • operation commands.WeaveCommandsList
  • operation commands.WeaveCommandsPatch
  • operation commands.WeaveCommandsUpdate
  • operation devices.WeaveDevicesAddtoplace
  • operation devices.WeaveDevicesCreateLocalAuthTokens
  • operation devices.WeaveDevicesDelete
  • operation devices.WeaveDevicesGet
  • operation devices.WeaveDevicesHandleInvitation
  • operation devices.WeaveDevicesInsert
  • operation devices.WeaveDevicesList
  • operation devices.WeaveDevicesPatch
  • operation devices.WeaveDevicesPatchState
  • operation devices.WeaveDevicesSetroom
  • operation devices.WeaveDevicesUpdate
  • operation devices.WeaveDevicesUpdateParent
  • operation devices.WeaveDevicesUpsertLocalAuthInfo
  • operation events.WeaveEventsDeleteAll
  • operation events.WeaveEventsList
  • operation events.WeaveEventsRecordDeviceEvents
  • operation model_manifests.WeaveModelManifestsGet
  • operation model_manifests.WeaveModelManifestsList
  • operation model_manifests.WeaveModelManifestsValidateCommandDefs
  • operation model_manifests.WeaveModelManifestsValidateComponents
  • operation model_manifests.WeaveModelManifestsValidateDeviceState
  • operation personalized_infos.WeavePersonalizedInfosGet
  • operation personalized_infos.WeavePersonalizedInfosPatch
  • operation personalized_infos.WeavePersonalizedInfosUpdate
  • operation places.WeavePlacesAddMember
  • operation places.WeavePlacesCreate
  • operation places.WeavePlacesDelete
  • operation places.WeavePlacesGet
  • operation places.WeavePlacesHandleInvitation
  • operation places.WeavePlacesList
  • operation places.WeavePlacesListSuggestions
  • operation places.WeavePlacesModify
  • operation places.WeavePlacesRemoveMember
  • operation registration_tickets.WeaveRegistrationTicketsFinalize
  • operation registration_tickets.WeaveRegistrationTicketsGet
  • operation registration_tickets.WeaveRegistrationTicketsInsert
  • operation registration_tickets.WeaveRegistrationTicketsPatch
  • operation registration_tickets.WeaveRegistrationTicketsUpdate
  • operation rooms.WeaveRoomsCreate
  • operation rooms.WeaveRoomsDelete
  • operation rooms.WeaveRoomsGet
  • operation rooms.WeaveRoomsList
  • operation rooms.WeaveRoomsModify
  • operation subscriptions.WeaveSubscriptionsDelete
  • operation subscriptions.WeaveSubscriptionsGet
  • operation subscriptions.WeaveSubscriptionsGetNotifications
  • operation subscriptions.WeaveSubscriptionsInsert
  • operation subscriptions.WeaveSubscriptionsList
  • operation subscriptions.WeaveSubscriptionsPatch
  • operation subscriptions.WeaveSubscriptionsSubscribe
  • operation subscriptions.WeaveSubscriptionsUpdate

Protobuf error on running server

Weaviate Swagger version v0.1.2 generates error:

# github.com/weaviate/weaviate/restapi
restapi/configure_weaviate.go:55: api.ProtobufConsumer undefined (type *operations.WeaviateAPI has no field or method ProtobufConsumer)
restapi/configure_weaviate.go:62: api.ProtobufProducer undefined (type *operations.WeaviateAPI has no field or method ProtobufProducer)

Float64 Error running server

Running the Weaviate server results in:

# github.com/weaviate/weaviate/restapi/operations/commands
restapi/operations/commands/weaviate_commands_insert_parameters.go:339: cannot convert *o.ResponseAwaitMs (type string) to type float64

Run command: go run ./cmd/weaviate-server/main.go --scheme=http

This has to do with the way this operation is defined in the Swagger document.

NOTE:
When the issue is found in the Swagger document;

  • fix and document it here.
  • Don't close this issue
  • Assign this issue to @bobvanluijt

Error on running code and getting the libraries

Error exists when running both go get ./... and go run ./cmd/weaviate-server/main.go --scheme=http:

# github.com/weaviate/weaviate/restapi
restapi/server.go:57: too many arguments in call to configureAPI
        have (*operations.WeaviateAPI, string)
        want (*operations.WeaviateAPI)
restapi/server.go:122: too many arguments in call to configureAPI
        have (*operations.WeaviateAPI, string)
        want (*operations.WeaviateAPI)

Validate if all actions exist as functions

Runtime error can occur if an endpoint is called that doesn't have a valid class function.

Validating all the functions (does function-x exists in class-y) should solve this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.