Skip to main content

A pipeline which allows for the ingestion, storage, and processing of a large body of textual information with LLMs.

Project description

#!/Simon

Hello! Welcome to Simon. Simon is a Python library that powers your entire semantic search stack: OCR, ingest, semantic search, extractive question answering, textual recommendation, and AI chat.


Check out this online demo of the tool!

Quick Start

Are you ready to rock 🪨 Simon? Let's do it.

After that, we can get started!

Install the Package

You can get the package from PyPi.

pip install simon-search

Connect to Database

import simon

# connect to your database
context = simon.create_context(
  "PROJECT_NAME",               # an arbitrary string id to silo your data.
                                # (store and search are per-project.)
  "sk-YOUR_OPENAI_API_KEY",     # must support GPT-4

  # postgres options. get these from your postgres provider.
  { "host": "YOUR_DB_HOST.com",
    "port": 5432,
    "user": "YOUR_USERNAME",
    "password": "PASSWORD, or None",
    "database": "YOUR_DATABASE_NAME"
  }
)

# if needed, provision the database
simon.setup(context) # do this *only once once per new database*!!

You can also store the OpenAI key and Database info as environment variables or in a .env.

Storing Some Files

ds = simon.Datastore(context)

# storing a remote webpage (or, if Java is installed, a PDF/PNG)
ds.store_remote("https://en.wikipedia.org/wiki/Chicken", title="Chickens")

# storing a local file (or, if Java is installed, a PDF/PNG)
ds.store_file("/Users/test/file.txt", title="Test File")

# storing some text
ds.store_text("Hello, this is the text I'm storing.", "Title of the Text", "{metadata: can go here}")

Search Those Files

We all know why you came here: search!

s = simon.Search(context)

# Semantic Search
results = s.search("chicken habits")

# Recommendation (check out the demo: https://wikisearch.shabang.io/)
results = s.brainstorm("chickens are a species that")

# LLM Answer and Extractive Question-Answering ("Quoting")
results = s.query("what are chickens?")

That's it! Simple as that. Want to learn more? Read the full tutorial to learn about the overall organization of the package.

Friends!

We are always looking for more friends to build together. If you are interested, please reach out by... CONTRIBUTING! Simply open a PR/Issue/Discussion, and we will be in touch.


(C) 2023 Shabang Systems, LLC. Built with ❤️ and 🥗 in the SF Bay Area

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simon-search-0.0.1.post5.tar.gz (15.1 MB view details)

Uploaded Source

File details

Details for the file simon-search-0.0.1.post5.tar.gz.

File metadata

  • Download URL: simon-search-0.0.1.post5.tar.gz
  • Upload date:
  • Size: 15.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.0.0 pkginfo/1.9.6 readme-renderer/40.0 requests/2.31.0 requests-toolbelt/1.0.0 urllib3/2.0.3 tqdm/4.65.0 importlib-metadata/6.7.0 keyring/24.2.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.0

File hashes

Hashes for simon-search-0.0.1.post5.tar.gz
Algorithm Hash digest
SHA256 6002167f56e245cf50f33991e74a2e56fb43a86990fc33f3569283b573ef9020
MD5 cd3919cc67755231b17628987e7e234d
BLAKE2b-256 0066d377b7ba41582c6daa027a5705e6ef0bc0f2be8d1262d988fab0d50791b4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page