11
22from typing import List
3- from .prompts import PrompBook
3+ from .prompts import PromptBook
44from langchain .llms import OpenAI
5+ from langchain .chat_models import ChatOpenAI
6+ from langchain .prompts .chat import (
7+ ChatPromptTemplate ,
8+ SystemMessagePromptTemplate ,
9+ AIMessagePromptTemplate ,
10+ HumanMessagePromptTemplate ,
11+ )
12+ from langchain .schema import (
13+ AIMessage ,
14+ HumanMessage ,
15+ SystemMessage
16+ )
17+
518import json
619
720from .utils import Utilities
@@ -11,16 +24,24 @@ def __init__(self, requirement:str,root_dir:str, openai_api_key:str):
1124 self .requirement = requirement
1225 self .root_dir = root_dir
1326 self .api_key = openai_api_key
14- self .brain = OpenAI (
15- model_name = "gpt-3.5-turbo" ,
27+ self .brain = ChatOpenAI (
28+ model = "gpt-3.5-turbo" ,
1629 openai_api_key = self .api_key ,
1730 temperature = 0 ,
1831 streaming = False
1932 )
20-
33+
34+ def brain_storm (self ,prompt :str )-> str :
35+ messages = [
36+ SystemMessage (content = "you are a senior software developer" ),
37+ HumanMessage (content = prompt )
38+ ]
39+ aiMessage :AIMessage = self .brain (messages = messages )
40+ return aiMessage .content
41+
2142 def clear_doubts (self ):
22- prompt = PrompBook .expand_requirements (self .requirement )
23- doubts : str = self .brain (prompt )
43+ prompt = PromptBook .expand_requirements (self .requirement )
44+ doubts = self .brain_storm (prompt )
2445 doubt_list :List [str ]= doubts .split ("\n " )
2546 doubt_list = [doubt .strip () for doubt in doubt_list if doubt .strip ()!= "" ]
2647 print ("""
@@ -45,21 +66,20 @@ def clear_doubts(self):
4566 return doubt_list ,answer_list
4667
4768 def plan_project (self ):
48- prompt = PrompBook .plan_project (self .requirement ,self .clarifications )
49- plannings :str = self .brain (prompt )
69+ prompt = PromptBook .plan_project (self .requirement ,self .clarifications )
70+ plannings :str = self .brain_storm (prompt )
5071 return plannings
5172
5273 def generate_folder_structure (self ):
53- prompt = PrompBook .design_folder_structure (
74+ prompt = PromptBook .design_folder_structure (
5475 question = self .requirement ,
5576 plan = self .plannings ,
5677 clarifications = self .clarifications
5778 )
58- folder_tree_str :str = self .brain (prompt )
79+ folder_tree_str :str = self .brain_storm (prompt )
5980 folder_tree :dict = json .loads (folder_tree_str )
6081 Utilities .generate_files_and_folders (structure = folder_tree ,root_dir = self .root_dir )
6182
62-
6383 def develop (self ):
6484 # clearing all doubts
6585 doubts ,answers = self .clear_doubts ()
0 commit comments