import concurrent.futures import time import miniflux from markdownify import markdownify as md from openai import OpenAI from yaml import load, Loader config = load(open('config.yml', encoding='utf8'), Loader=Loader) miniflux_client = miniflux.Client(config['miniflux']['base_url'], api_key=config['miniflux']['api_key']) llm_client = OpenAI(base_url=config['llm']['base_url'], api_key=config['llm']['api_key']) def process_entry(entry): llm_result = '' start_with_list = [name[1]['title'] for name in config['agents'].items()] style_block = [name[1]['style_block'] for name in config['agents'].items()] [start_with_list.append('\n{agent[1]['title']}:{response_content}

" else: llm_result = llm_result + f"{agent[1]['title']}:{response_content}

" if len(llm_result) > 0: miniflux_client.update_entry(entry['id'], content= llm_result + entry['content']) while True: # Fetch entries with status unread entries = miniflux_client.get_entries(status=['unread'], limit=10000) print(time.strftime("%Y/%m/%d %H:%M:%S", time.localtime()), 'Fetched new entries: ' + str(len(entries['entries']))) if len(entries['entries']) > 0 else print(time.strftime("%Y/%m/%d %H:%M:%S", time.localtime()), 'No new entries') with concurrent.futures.ThreadPoolExecutor() as executor: futures = [executor.submit(process_entry, i) for i in entries['entries']] if len(entries['entries']) > 0: print(time.strftime("%Y/%m/%d %H:%M:%S", time.localtime()), 'Done') time.sleep(60)