jan_scraper: interact with Jan.ai by sending messages and retrieving the response
Project description
jan-scraper
jan-scraper: interact with Jan.ai by sending messages and retrieving the response
⚠️DISCLAIMER: This version is stil a beta and it is built for small, end-user, customizable projects. It is not optimized for scaling LLMs on large applications: we will get there, but for now, we are still far.
Overview
jan-scraper is a Python package that provides a convenient interface to interact with Jan.ai. Jan.ai is an open-source desktop app designed to run large language models (LLMs) locally, ensuring an offline and privacy-focused environment. With jan-scraper, you can easily send messages to Jan and retrieve responses, making it a versatile tool for leveraging Jan's capabilities programmatically.
Installation
-
First and foremost, you need Jan.ai installed on your machine, and you need to download at least one of the models that the app suggests.
-
Now, you can install jan-scraper using
pip
:
python3 -m pip install jan-scraper
- Now open your python idle and do the following:
python3
Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr 5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from jan_scraper.scraper import get_package_location
>>> get_package_location()
'path\\to\\jan_scraper'
- Go to the GitHub image directory and download the images: now, move them to
'path\\to\\jan_scraper'
as obtained before. Everything should be then set to run!
Requirements
- Python 3.10 or higher
- pyautogui (version 0.9.54)
Functions
get_directory_info(path)
Get the last modified time of a folder.
- Parameters:
path (str)
: Path to the folder.
- Returns:
float
: Last modified time of the folder.
define_assistant(json_file_path, new_instructions, model, name="Jan", description="A default assistant that can use all downloaded models")
Update the assistant's configuration in a JSON file.
- Parameters:
json_file_path (str)
: Path to the JSON file containing the assistant's configuration.new_instructions (str)
: New instructions for the assistant.model (str)
: Model to be used by the assistant.name (str)
: Assistant's name.description (str)
: Assistant's description.
parse_jsonl_file(file_path)
Parse a JSON Lines file and return a list of JSON objects.
- Parameters:
file_path (str)
: Path to the JSON Lines file.
- Returns:
list
: List of parsed JSON objects.
get_package_location()
Get the location of the installed jan-scraper package.
- Returns:
str
: Location of the jan-scraper package.
scrape_jan(text, app, jan_threads_path, model, new_instructions="You are a helpful assistant", name="Jan", description="A default assistant that can use all downloaded models", set_new_thread=True)
Scrape data using the jan-scraper package.
- Parameters:
text (str)
: Text input for jan-scraper.app (str)
: Path to the jan-scraper desktop app.jan_threads_path (str)
: Path to the threads directory used by jan-scraper.model (str)
: Model to be used by jan-scraper.new_instructions (str)
: New instructions for the assistant.name (str)
: Assistant's name.description (str)
: Assistant's description.set_new_thread (bool)
: Whether to set a new thread or use the existing one.
- Returns:
str
: Resulting message from jan-scraper.
Example
import jan_scraper.scraper
# Define your messages, app path, and other necessary parameters
text = "Hi there, can you present yourself?"
app_path = "/path/to/jan-app"
threads_path = "/path/to/jan-threads"
model = "your-preferred-model"
instructions = "You are an Italian XVII century poet"
name = "Guglielmo Scuotipera"
# Scrape Jan.ai and retrieve the response
response = jan_scraper.scraper.scrape_jan(text = text, app = app_path, jan_threads_path = threads_path, model = model, new_instructions = instructions, name = name)
# Process the response as needed
print("Jan's Response:", response)
Find a more elaborate user case in user_case.py
License
This project is licensed under the AGPL-v3.0 License - see the LICENSE file for details.
Acknowledgments
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for jan_scraper-0.0.1b3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e76bf3d30986cebf746c52b2c80a1eae7d4181c366fdbfd0fe263dbb69efb0ab |
|
MD5 | 8884b32322aa93463e71751e1a54118f |
|
BLAKE2b-256 | 921d462ddcaa6d615a947176e45679c49e89e392f7f146c9d9fbd27137967690 |