Source code for app.utils.creation

import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import yaml
import utils.llm_api as llm_api

[docs] def convert_repo_to_txt(): pass
[docs] def create_part(part_name, info, file_tree, model): ''' Create the given section by gemini. :param: part_name: name of section :param: content: content of section btw, it seems that parameter can be improved. This will be done once UI is designed. :return: improved section ''' with open("app/prompts/creation_prompt.yaml", 'r') as file: prompts_repo = yaml.safe_load(file) meta_prompt = prompts_repo["meta-prompt"] output_prompt = prompts_repo["output-meta"] # title need both title_prompt and about_prompt if info: output_prompt = prompts_repo["a_" + part_name] + info + "\n\n" + output_prompt if file_tree: file_tree_prompt = prompts_repo["file-tree"] + "\n\n" + file_tree else: file_tree_prompt = "" prompt = (meta_prompt + "\n\n" + prompts_repo[part_name] + "\n\n" + file_tree_prompt + "\n\n" + output_prompt + "\n\n" ) # During development I use together_ai since it's faster. result = llm_api.gemini_api(prompt, model) # add section name if LLM misses it. if not result.startswith("##") and not part_name == "title": result = "## " + part_name[0].upper() + part_name[1:] + "\n\n" + result return result
[docs] def create_feature(existed_feature, file_tree, model): with open("app/prompts/creation_prompt.yaml", 'r') as file: prompts_repo = yaml.safe_load(file) features = [entry for entry in existed_feature if entry.strip()] if file_tree: file_tree_prompt = prompts_repo["file-tree"] + "\n\n" + file_tree else: file_tree_prompt = "" meta_prompt = prompts_repo["meta-prompt"] feature_prompt = prompts_repo["feature"] + "List only 1 feature. It should be different from:" + "\n\n" output_format = "You should only return feature and its description without any other sentences." prompt = meta_prompt + feature_prompt + str(features) + "\n\n" + file_tree_prompt + "\n\n" + output_format result = llm_api.gemini_api(prompt, model) return result
[docs] def structure_markdown(ordered_text, model): with open("app/prompts/creation_prompt.yaml", 'r') as file: prompts_repo = yaml.safe_load(file) instruction = prompts_repo["structure"] prompt = instruction + "\n\n" + ordered_text result = llm_api.gemini_api(prompt, model) return result