Spaces:
Sleeping
Sleeping
| import inspect | |
| import os | |
| import threading | |
| from dotenv import load_dotenv | |
| from scripts.auto_tests_docs.docs import DOCUMENTATION_WRITER_SOP | |
| from swarm_models import OpenAIChat | |
| ########### | |
| ############### | |
| load_dotenv() | |
| api_key = os.getenv("OPENAI_API_KEY") | |
| model = OpenAIChat( | |
| model_name="gpt-4-1106-preview", | |
| openai_api_key=api_key, | |
| max_tokens=4000, | |
| ) | |
| def process_documentation( | |
| item, | |
| module: str = "swarms.structs", | |
| docs_folder_path: str = "docs/swarms/structs", | |
| ): | |
| """ | |
| Process the documentation for a given class or function using OpenAI model and save it in a Python file. | |
| """ | |
| doc = inspect.getdoc(item) | |
| source = inspect.getsource(item) | |
| is_class = inspect.isclass(item) | |
| item_type = "Class Name" if is_class else "Name" | |
| input_content = ( | |
| f"{item_type}:" | |
| f" {item.__name__}\n\nDocumentation:\n{doc}\n\nSource" | |
| f" Code:\n{source}" | |
| ) | |
| # Process with OpenAI model | |
| processed_content = model( | |
| DOCUMENTATION_WRITER_SOP(input_content, module) | |
| ) | |
| doc_content = f"# {item.__name__}\n\n{processed_content}\n" | |
| # Create the directory if it doesn't exist | |
| dir_path = docs_folder_path | |
| os.makedirs(dir_path, exist_ok=True) | |
| # Write the processed documentation to a Python file | |
| file_path = os.path.join(dir_path, f"{item.__name__.lower()}.md") | |
| with open(file_path, "w") as file: | |
| file.write(doc_content) | |
| print( | |
| f"Processed documentation for {item.__name__}. at {file_path}" | |
| ) | |
| def main(module: str = "docs/swarms/structs"): | |
| items = [] | |
| threads = [] | |
| for item in items: | |
| thread = threading.Thread( | |
| target=process_documentation, args=(item,) | |
| ) | |
| threads.append(thread) | |
| thread.start() | |
| # Wait for all threads to complete | |
| for thread in threads: | |
| thread.join() | |
| print(f"Documentation generated in {module} directory.") | |
| if __name__ == "__main__": | |
| main() | |