cinematic's People
cinematic's Issues
Spotify plugin
Import spotify data, playlists, likes, provide it this data
Can access the discord music bot to play music
Song discovery/categorisation:
Create custom playlists based on your listening habits, mood, and preferred genres or artists. Daily/weekly/discovery etc playlists
Detect the mood of your liked songs and categorize them accordingly. You can then select a mood-based playlist to match your current emotions or situations, such as "Energetic," "Relaxed," or "Inspirational."
Genre Discovery: Explore new genres and sub-genres based on your listening history, expanding your musical horizons.
Radio Mode: Enjoy a continuous stream of music based on your preferences, blending your favorite songs with new recommendations for a seamless listening experience.
Information, lyrics analysis etc while playing songs:
Lyrics and Trivia: Display song lyrics and interesting trivia about the song or artist, providing a deeper connection to the music you love. You can also enable a lyrics-based quiz mode to test your knowledge of your favorite tracks. Offer in-depth profiles of your favorite artists, including their influences, discography, and similar artists.
Personalized Music Insights: Generate visualizations and statistics about your listening habits, such as your most-played artists, genres, and songs over time.
Periodically go through users memories to find what needs to be updated "i want all marvel movies" should keep checking "are all marvel movies on?"
Rust Rewrite
New simpler human language model:
Less requests and specific formats of data!!!
Register every module to the main chatbot, pass through system prompts explaining their very basic api
MEDIA: query the media server for media, check what media are present, check file size, resolution
MEMORIES: query the memories files for data, has memory file keys (movies, series, opinions), and set new memories, memories should always be stored when a user gives an opinion or requests a show
DOWNLOADS: query current downloads, search torrents, add downloads, move files into correct locations
WEB: search websites for data from a query, reply with the answered query
When replying, don't store the interactions history Web search running etc, only user and assistant messages
Downvote bot to feedback
User wanted movies and tv, use sonarr/radarr tags instead add-dan
First grab users name from memories, or if user doesnt have name stored, use gpt4 to convert it to plain characters azAZ
dan to dan
Once set never overwrite the name, or have a function that can replace all tags with new name if needed
Convert memories to tags one time use function
When adding movies or series, include tag add-user
If movie or series is already added, add tag
If user wants something removed, remove the tag
Function that gets wanted movies or wanted series, scrapes all data from arr site and processes tags
Function that gets any series or movies that are not wanted by anyone, admins can then request they are purged.
Cant check added movies
Get season and episode details including file sizes
More creative activities
Change results based on time of day and weather
Idle if not been used recently, eventually change to sleeping, wake up when pinged
Process chat in a new thread so it can handle multiple messages at once
change iron man to 1080p, are the two sequels on? Said it changed but didnt
Rewrite without sonarr/radarr
API for tvdb, tmdb
Store files in the folders for series and movies, link to tvdbId, list episodes and which are available and point to file etc
Torrent search and manage torrent client
Move files from downloads to correct location, rename files etc
Choose qualities
Chat bot interacts with the files only
Separate bot that runs every x minutes and manages the files and downloads
Adding wanted doesn't work
Improved query against media database "what action movies are on the server"
Doesnt know what media added
๐ฌ what media have i added
โ
I'm sorry, I don't have that information about your current media collection. My memory file only contains your preferences and opinions. If you need assistance with a specific media request or have any questions, feel free to ask! ๐
Error
Traceback (most recent call last):
File "/home/dan/.local/lib/python3.9/site-packages/discord/client.py", line 659, in connect
await self.ws.poll_event()
File "/home/dan/.local/lib/python3.9/site-packages/discord/gateway.py", line 646, in poll_event
raise ConnectionClosed(self.socket, shard_id=self.shard_id, code=code) from None
discord.errors.ConnectionClosed: Shard ID None WebSocket closed with 1000
2023-04-21 21:17:05 ERROR discord.client Ignoring exception in on_message
Traceback (most recent call last):
File "/home/dan/.local/lib/python3.9/site-packages/discord/client.py", line 441, in _run_event
await coro(*args, **kwargs)
File "/home/dan/CineMatic/main.py", line 290, in on_message
relevantExamples = Examples.get_examples(userTextHistory + userText)
File "/home/dan/CineMatic/modules/examples.py", line 202, in get_examples
response = openai.ChatCompletion.create(
File "/home/dan/.local/lib/python3.9/site-packages/openai/api_resources/chat_completion.py", line 25, in create
return super().create(*args, **kwargs)
File "/home/dan/.local/lib/python3.9/site-packages/openai/api_resources/abstract/engine_api_resource.py", line 153, in create
response, _, api_key = requestor.request(
File "/home/dan/.local/lib/python3.9/site-packages/openai/api_requestor.py", line 226, in request
resp, got_stream = self._interpret_response(result, stream)
File "/home/dan/.local/lib/python3.9/site-packages/openai/api_requestor.py", line 620, in _interpret_response
self._interpret_response_line(
File "/home/dan/.local/lib/python3.9/site-packages/openai/api_requestor.py", line 683, in _interpret_response_line
raise self.handle_error_response(
openai.error.RateLimitError: That model is currently overloaded with other requests. You can retry your request, or contact us through our help center at help.openai.com if the error persists. (Please include the request ID 3c98abe6ad68e62e52802b1d8731502c in your message.)
2023-04-21 21:17:06 INFO discord.gateway Shard ID None has successfully RESUMED session 05a7160266705c3cae50fded380a1a6b.
2023-04-21 21:19:28 WARNING discord.gateway Shard ID None heartbeat blocked for more than 10 seconds.
Loop thread traceback (most recent call last):
File "/home/dan/CineMatic/main.py", line 391, in
client.run(credentials["discord"])
File "/home/dan/.local/lib/python3.9/site-packages/discord/client.py", line 860, in run
asyncio.run(runner())
File "/usr/lib/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/lib/python3.9/asyncio/base_events.py", line 629, in run_until_complete
self.run_forever()
File "/usr/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
self._run_once()
File "/usr/lib/python3.9/asyncio/base_events.py", line 1890, in _run_once
handle._run()
File "/usr/lib/python3.9/asyncio/events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "/home/dan/.local/lib/python3.9/site-packages/discord/client.py", line 441, in _run_event
await coro(*args, **kwargs)
File "/home/dan/CineMatic/main.py", line 303, in on_message
await runChatCompletion(
File "/home/dan/CineMatic/main.py", line 89, in runChatCompletion
response = openai.ChatCompletion.create(
File "/home/dan/.local/lib/python3.9/site-packages/openai/api_resources/chat_completion.py", line 25, in create
return super().create(*args, **kwargs)
File "/home/dan/.local/lib/python3.9/site-packages/openai/api_resources/abstract/engine_api_resource.py", line 153, in create
response, _, api_key = requestor.request(
File "/home/dan/.local/lib/python3.9/site-packages/openai/api_requestor.py", line 216, in request
result = self.request_raw(
File "/home/dan/.local/lib/python3.9/site-packages/openai/api_requestor.py", line 516, in request_raw
result = _thread_context.session.request(
File "/home/dan/.local/lib/python3.9/site-packages/requests/sessions.py", line 587, in request
resp = self.send(prep, **send_kwargs)
File "/home/dan/.local/lib/python3.9/site-packages/requests/sessions.py", line 701, in send
r = adapter.send(request, **kwargs)
File "/home/dan/.local/lib/python3.9/site-packages/requests/adapters.py", line 489, in send
resp = conn.urlopen(
File "/home/dan/.local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 703, in urlopen
httplib_response = self._make_request(
File "/home/dan/.local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 444, in _make_request
httplib_response = conn.getresponse()
File "/usr/lib/python3.9/http/client.py", line 1347, in getresponse
response.begin()
File "/usr/lib/python3.9/http/client.py", line 307, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.9/http/client.py", line 268, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/lib/python3.9/socket.py", line 704, in readinto
return self._sock.recv_into(b)
File "/usr/lib/python3.9/ssl.py", line 1241, in recv_into
return self.read(nbytes, buffer)
File "/usr/lib/python3.9/ssl.py", line 1099, in read
return self._sslobj.read(len, buffer)
File "/home/dan/CineMatic/main.py", line 438, in
client.run(credentials["discord"])
File "/home/dan/.local/lib/python3.9/site-packages/discord/client.py", line 860, in run
asyncio.run(runner())
File "/usr/lib/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/lib/python3.9/asyncio/base_events.py", line 629, in run_until_complete
self.run_forever()
File "/usr/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
self._run_once()
File "/usr/lib/python3.9/asyncio/base_events.py", line 1890, in _run_once
handle._run()
File "/usr/lib/python3.9/asyncio/events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "/home/dan/.local/lib/python3.9/site-packages/discord/client.py", line 441, in _run_event
await coro(*args, **kwargs)
File "/home/dan/CineMatic/main.py", line 374, in on_message
await runChatCompletion(
File "/home/dan/CineMatic/main.py", line 164, in runChatCompletion
await runChatCompletion(
File "/home/dan/CineMatic/main.py", line 90, in runChatCompletion
response = openai.ChatCompletion.create(
File "/home/dan/.local/lib/python3.9/site-packages/openai/api_resources/chat_completion.py", line 25, in create
return super().create(*args, **kwargs)
File "/home/dan/.local/lib/python3.9/site-packages/openai/api_resources/abstract/engine_api_resource.py", line 153, in create
response, _, api_key = requestor.request(
File "/home/dan/.local/lib/python3.9/site-packages/openai/api_requestor.py", line 216, in request
result = self.request_raw(
File "/home/dan/.local/lib/python3.9/site-packages/openai/api_requestor.py", line 516, in request_raw
result = _thread_context.session.request(
File "/home/dan/.local/lib/python3.9/site-packages/requests/sessions.py", line 587, in request
resp = self.send(prep, **send_kwargs)
File "/home/dan/.local/lib/python3.9/site-packages/requests/sessions.py", line 701, in send
r = adapter.send(request, **kwargs)
File "/home/dan/.local/lib/python3.9/site-packages/requests/adapters.py", line 489, in send
resp = conn.urlopen(
File "/home/dan/.local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 703, in urlopen
httplib_response = self._make_request(
File "/home/dan/.local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 444, in _make_request
httplib_response = conn.getresponse()
File "/usr/lib/python3.9/http/client.py", line 1347, in getresponse
response.begin()
File "/usr/lib/python3.9/http/client.py", line 307, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.9/http/client.py", line 268, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/lib/python3.9/socket.py", line 704, in readinto
return self._sock.recv_into(b)
File "/usr/lib/python3.9/ssl.py", line 1241, in recv_into
return self.read(nbytes, buffer)
File "/usr/lib/python3.9/ssl.py", line 1099, in read
return self._sslobj.read(len, buffer)
"I like x movie and x movie" doesnt always save memory
Manage subtitles?
https://www.opensubtitles.com/en/movies/2018-black-panther
Download the top rated, normal subtitles, hearing impaired, and foreign parts only
Lookup resolution of thor movies, relying on example
User: what resolution are the thor movies
Assistant: Your wish is my command! Let me look up the resolution of the Thor movies for you. [CMDRETmovie_lookupThor~List Thor movies with their resolutions and data {availability, title, year, resolution, tmdbId, id}]. Here is the information: - Thor (2011): 4K - Thor: The Dark World (2013): 4K - Thor: Ragnarok (2017): 4K - Thor: Love and Thunder (2022): 4K Is there anything else I can assist you with today?
It should research and then get the response
Replace summarise text model with a remote gpt3.5 call
It takes too long, makes an error log, makes the script take a while to start
Ability to get dump of entire sonarr/radarr lists, and get queries from it (e.g. if you wanna search "how many gb am i using")
New minimal model
Examples
- Example categories, run just user prompt through gpt-3.5 querying it against the question of each example category
- Does it relate to resolution? does it relate to movies?
- Add only relevant queries
- Make the main model gpt4 but with far less info provided so costs less, currently about 6p for just the prompt
Chat History
- Don't store chat history, each user prompt is its own entity
- Provide chat history of the users messages in a prompt, remove history messages after 20 minutes or after a text limit
APIs
- Each AI api in its own python script
- Log file for each mini ai to verify prompts success
- Replace the summarise ai with a remotely ran gpt3.5 one, too slow
Lookup doesnt find any info
Admin required to delete movies else cannot call api
Asking for "i want all the marvel cinematic universe movies" overflows gpt3.5
It does web search to find 23 movies, then it asks if you want to check which are on the server, which then does 23 lookups at once which gets a huge result
Losing oldest assistant messages
๐ฌ i need movies to watch when im high, movies like scary movie and haunted house
โ๏ธ Hello Nikolai001! I get it, you're looking for some fun, lighthearted, and hilarious movies to watch when you're in a relaxed mood. Here are a few recommendations:
๐ฌ Montry Python movies unsettles me, can you replace that?
โ
I apologize if that recommendation wasn't to your liking. I'll replace it with another comedy. How about "Super Troopers" (2001)? It's a hilarious movie about a group of goofy state troopers who try to save their jobs by solving a crime
First reply had context including super troopers which was forgotten
Perhaps summarise past messages
Also, max thread limit!
Struggling wtih memory lookup "what movies have i requested?"
Autonomous actions, ask it to ping you when a movie is download, when a series new season comes out etc, store these in a file and occasional loop through this file and make checks as required then remove once the ping is completed
Can't add series
Only sends the title in the request and then performs a lookup, needs a rewrite and testing
Todo
Radarr api
- Search for movies
- Basic interactions and replies
- Add movies, verify with user first
- Get basic movie status, if exists on the server, size etc
- Read and set resolution profiles
- Delete movies
- #25
- Mini ai data processor for lookups, pushes a query, manually write out results into plain english then feed to gpt3.5
- #18
- How would multiple chats work? If server asks something to user?
- #17
Sonarr api
- Sonarr api basics
- Sonarr add series
- Delete series
- Admin required to delete series else cannot call api
- Change series resolution
- #19
- Sonarr file sizes
Memories api that stores and retrieves memories
- Basic api with storing file
- Robust memory retrieval
- Robust memory saving, space efficient
- Use memories to create a user recommendations of media to watch etc
- #20
- #22
Deluge api
Autonomous actions
Overhaul
- Remove sonarr and radarr, directly scan filesystem
- Needs custom resolution request that gets used in finding the files, store this as a file?
- Custom replacement for prowlarr, or use prowlarr to scan torrent sites
- Submit torrents to deluge, monitor them and add files
- Custom "is media on" to handle it being requested but not downloaded
- Custom tmdb api lookups
- Custom file data info
Cant downvote bot
Separate examples for initial process and processing system data
Main chat thread should only process the users message and return either commands or a reply.
Then it should be ran again with that data provided
Should only ask questions like "Looking up Iron Man, did you mean the 2008 film? " if it isnt running commands, user cannot reply at this point
Deluge api, check on status of downloads
When asked to add westworld, it asked what quality would i like it while adding it in 1080p, not giving a chance to pick, it also listed the quality profiles
Use memories to as admin find media that is not requested by any user so can clear space
Improvements to adding
Make it always prompt asking which you mean, tv or movie etc
Make it provide details in these prompts
Supply it with votes so it can try to always get the most popular based on search
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.