
Ein Open-Source-Rahmen für das Abrufen von Abrufen-Augmented System (RAG) verwendet semantische Suche, um die erwarteten Ergebnisse abzurufen und mit Hilfe von LLM (großes Sprachmodell) menschlich-lesbare Konversationsreaktionen zu erzeugen.
Semantische AI -Bibliotheksdokumentation Dokumente hier
Python 3.10+ Asyncio
# Using pip
$ python -m pip install semantic-ai
# Manual install
$ python -m pip install .Stellen Sie die Anmeldeinformationen in .Env -Datei fest. Geben Sie nur den Anmeldeinformationen für einen Ein -Connector, einen One Indexer und eine LLM -Modellkonfiguration an. Andere Felder als leer gelegt
# Default
FILE_DOWNLOAD_DIR_PATH= # default directory name 'download_file_dir'
EXTRACTED_DIR_PATH= # default directory name 'extracted_dir'
# Connector (SharePoint, S3, GCP Bucket, GDrive, Confluence etc.,)
CONNECTOR_TYPE= " connector_name " # sharepoint
SHAREPOINT_CLIENT_ID= " client_id "
SHAREPOINT_CLIENT_SECRET= " client_secret "
SHAREPOINT_TENANT_ID= " tenant_id "
SHAREPOINT_HOST_NAME= ' <tenant_name>.sharepoint.com '
SHAREPOINT_SCOPE= ' https://graph.microsoft.com/.default '
SHAREPOINT_SITE_ID= " site_id "
SHAREPOINT_DRIVE_ID= " drive_id "
SHAREPOINT_FOLDER_URL= " folder_url " # /My_folder/child_folder/
# Indexer
INDEXER_TYPE= " <vector_db_name> " # elasticsearch, qdrant, opensearch
ELASTICSEARCH_URL= " <elasticsearch_url> " # give valid url
ELASTICSEARCH_USER= " <elasticsearch_user> " # give valid user
ELASTICSEARCH_PASSWORD= " <elasticsearch_password> " # give valid password
ELASTICSEARCH_INDEX_NAME= " <index_name> "
ELASTICSEARCH_SSL_VERIFY= " <ssl_verify> " # True or False
# Qdrant
QDRANT_URL= " <qdrant_url> "
QDRANT_INDEX_NAME= " <index_name> "
QDRANT_API_KEY= " <apikey> "
# Opensearch
OPENSEARCH_URL= " <opensearch_url> "
OPENSEARCH_USER= " <opensearch_user> "
OPENSEARCH_PASSWORD= " <opensearch_password> "
OPENSEARCH_INDEX_NAME= " <index_name> "
# LLM
LLM_MODEL= " <llm_model> " # llama, openai
LLM_MODEL_NAME_OR_PATH= " " # model name
OPENAI_API_KEY= " <openai_api_key> " # if using openai
# SQL
SQLITE_SQL_PATH= " <database_path> " # sqlit db path
# MYSQL
MYSQL_HOST= " <host_name> " # localhost or Ip Address
MYSQL_USER= " <user_name> "
MYSQL_PASSWORD= " <password> "
MYSQL_DATABASE= " <database_name> "
MYSQL_PORT= " <port> " # default port is 3306
Methode 1: Laden der .Env -Datei. Die Env -Datei sollte die Anmeldeinformationen haben
%load_ext dotenv
%dotenv
%dotenv relative/or/absolute/path/to/.env
(or)
dotenv -f .env run -- pythonMethode 2:
from semantic_ai . config import Settings
settings = Settings () import asyncio
import semantic_ai await semantic_ai . download ()
await semantic_ai . extract ()
await semantic_ai . index ()Nach Abschluss von Download, Extrakt und Index können wir die Antwort aus indiziertem Vektor dB generieren. Dieser Code unten angegeben.
search_obj = await semantic_ai . search ()
query = ""
search = await search_obj . generate ( query )Angenommen, der Job läuft lange aus, wir können die Anzahl der verarbeiteten Dateien ansehen, die Anzahl der Dateien fehlgeschlagen und der Dateiname, der in der Textdatei gespeichert ist, die in dem Verzeichnis 'extrahiert_dir_path/meta' verarbeitet und fehlgeschlagen ist.
Um die Quelle zu verbinden und das Verbindungsobjekt zu erhalten. Wir können das im Beispiel -Ordner sehen. Beispiel: SharePoint Connector
from semantic_ai . connectors import Sharepoint
CLIENT_ID = '<client_id>' # sharepoint client id
CLIENT_SECRET = '<client_secret>' # sharepoint client seceret
TENANT_ID = '<tenant_id>' # sharepoint tenant id
SCOPE = 'https://graph.microsoft.com/.default' # scope
HOST_NAME = "<tenant_name>.sharepoint.com" # for example 'contoso.sharepoint.com'
# Sharepoint object creation
connection = Sharepoint (
client_id = CLIENT_ID ,
client_secret = CLIENT_SECRET ,
tenant_id = TENANT_ID ,
host_name = HOST_NAME ,
scope = SCOPE
) import asyncio
import semantic_ai from semantic_ai . connectors import Sqlite
file_path = < database_file_path >
sql = Sqlite ( sql_path = file_path ) from semantic_ai . connectors import Mysql
sql = Mysql (
host = < host_name > ,
user = < user_name > ,
password = < password > ,
database = < database > ,
port = < port_number > # 3306 is default port
) query = ""
search_obj = await semantic_ai . db_search ( query = query )$ semantic_ai serve -f .env
INFO: Loading environment from ' .env '
INFO: Started server process [43973]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)Öffnen Sie Ihren Browser unter http://127.0.0.1:8000/semantic-ai
Gehen Sie jetzt zu http://127.0.0.1:8000/docs. Sie sehen die automatische interaktive API -Dokumentation (bereitgestellt von der Swagger UI): 