From cebce211ebd359bb96089c059968e7e51c55e13a Mon Sep 17 00:00:00 2001 From: yuruo Date: Sat, 20 Jan 2024 17:59:12 +0800 Subject: [PATCH] new --- agent/__pycache__/agent.cpython-39.pyc | Bin 0 -> 1628 bytes agent/__pycache__/agent_base.cpython-39.pyc | Bin 0 -> 1649 bytes .../__pycache__/manager_agent.cpython-39.pyc | Bin 0 -> 1581 bytes agent/{agent.py => agent_base.py} | 2 +- agent/manager_agent.py | 35 ++++++++++-------- agent/plan_agent.py | 4 +- agent/woker_agent.py | 4 +- main.py | 10 ++--- .../__pycache__/five_w_two_h.cpython-39.pyc | Bin 0 -> 622 bytes .../__pycache__/okr_principle.cpython-39.pyc | Bin 0 -> 2720 bytes work_principle/five_w_two_h.py | 9 ++--- work_principle/okr_principle.py | 5 ++- 12 files changed, 34 insertions(+), 35 deletions(-) create mode 100644 agent/__pycache__/agent.cpython-39.pyc create mode 100644 agent/__pycache__/agent_base.cpython-39.pyc create mode 100644 agent/__pycache__/manager_agent.cpython-39.pyc rename agent/{agent.py => agent_base.py} (98%) create mode 100644 work_principle/__pycache__/five_w_two_h.cpython-39.pyc create mode 100644 work_principle/__pycache__/okr_principle.cpython-39.pyc diff --git a/agent/__pycache__/agent.cpython-39.pyc b/agent/__pycache__/agent.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b9aa568cf60f451760a5dbb84915dedf7a7d9a13 GIT binary patch literal 1628 zcmbtUy^kX`6t_K|$z<{&5Tbx;I8l(|qC+Q|6@pt)pe-&S771akWX+CWvXh(41ls{N z%2s<75>QcqC~gai6MqR3f5EgAh=1V<#It7;!tPNZJo5AB`|$7m-eiM8La_aQ{4@L% z67ri{?6&|H53rj%C=^k&B%&RupzjmKRPdOn;F1ZZ=rI}bKky!z?}^6(uO;eBi3*O~q;+$}D8BkKa@Fp?$?h)$0Pf>0Hycb?k%Vp^2k)KDF&pY#Y-c=nHZ^%4R-5;4s zHq?zXrh2OXb#TEqeBM)oSIE3SA6$f+5V<;B|GLY?!|V~VE6uaAOl|Gc^1%|S!=p4m z%WQi1;n5!JZYQOvmMbeQd};TY>vvPXJFT@h`W$P|R8on~1XFq)J+Ar^p0ue511*M1=U<{Ut5j|8}x&T)iG)3jnu;I>c!(AAn zYqBZGvd&Z!%)sg%UeSFNB0kLwNDM}B2a3Sx7t0cCQCCJpxdwc+4@Y$Jv%1K^G@Wa= zdgvTQEmxDjv2XaaC;^o{4kFfImS_#caEGGL(JfZHv`d8KHMDD9ML~LfI%a*^XE9|g zq4A%Lvu9Cv$hMWgRhf(;_lKym1xVQ>QX)dD(#`u)ezwZW_C&iP&|N29cEZ)go^Zvb q-LJ)!pYcUQ<3T+1d!wL*?Zxe-JwW`~FX literal 0 HcmV?d00001 diff --git a/agent/__pycache__/agent_base.cpython-39.pyc b/agent/__pycache__/agent_base.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4c3de5d76290462168493d58ae7d19f2a31b99c9 GIT binary patch literal 1649 zcmbtUy^kX`6t_LjWHR{>AEJP2KuAZ5i|&MIR*1WW0&Q^taY*Q_m8{wEOLlUTnP58y z8)d7#3hAJt08!kQtNTlk_zR|`;$OG|@$A`zu)7opkNo`kKKy&XH)+2g6KpS@y?~1r zA-}uDZVPa6AG>)6g(8X;L^LB6^i!gk3Z4=boH4-^eMpA<54=alnUlMX;o?4a^DYV? zf-2%P6njcUpaR8lz`mZF8VcH6N#ar5?g&A zCztJ@%x#_)`3jP>OuVh6I+{UdNAdR3zMh)B?aFEDs(|D@WA$(^`SKW=bu~#W&QllA zj`kN|m%6-SU|f~3wK%?@HFqY5tmX!aiRKvb1<@f6FK=aghYFrRQ7sPBrL7*M77o3W zM#>|6{Ah7fM^fha94Vce@o2=W*S7eKHpl+~s2{g6J_PGu=U@IWFTIXa3E#-8SmECP z#Y;QJ4VgwV5)o~jc(@wT#)CRCV7>R(Z^mPD{0}@Fb`f?@obPaAku-{(u^*CCX6bXb zX6N)dvhkdr244}yIpO3iprm}|E-`oR5bD22DAxhrYn@ZeWy{Y)KMyURwP(?+quMH3 zlUb}fzc3ZAsT-$Ebye?KaLU(w)>ZvC$*ec)pSIR5B<^7K+cqB$(#J@(Buk4Tv6WBF zXA3Cz50dOSwaNbH2RjtJo|wE`EUmQgt=*-u-%b4Pq|)B#4c2ZXG}b~>3dnxYNKtiZ zM_2PJhBmdg>Sk3r$)}@}bY9d{*I|V(Nb_;sP8Yd+3@5@*mbzH=rwe=g{m}=vv6hai zIy5K7!W=2!Dy43tA&XU4^Q8ej{rM-?e!VvgL~C9tC`2>|W3Xn7=%U)f1-R6pDJl;K zHFth%?!piqlTJVuRjTS>3RZXViteEhk*hO_!3gd^5g7e^QGm^>(ugqAfRFa!h<0{d zkNjt$`S9QS>>w#%z~%iIBXFcFkKTNVi8v ztVeq+qKw5f`jc_?GVBc4?jK;IHXerVZ&9Xmkg|@YM3k0=oA;#rdYKl@iFSpcJ5Ide ygsY7m;fhSV-;66m;|qsI{b=C#hCu_}tD8$Zir!9Bq8~P%KXREcE|(FFg1-Q&Opk>C literal 0 HcmV?d00001 diff --git a/agent/__pycache__/manager_agent.cpython-39.pyc b/agent/__pycache__/manager_agent.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f658ad2165c7d0b8ac22ed504ac1bd8d754c747d GIT binary patch literal 1581 zcmb7E-ESL35Z}EopB<+ZQILu%h$W0h|D&N6Wp=whx)HS3aLj#*yT)b+!W`*(8q=iR7 z1ut*~1s7ln(JE>KVh3&zN^Ln*I=GIAN)aGQ)6uJ-(|gqJf4kQ^SWY%K`pbvMhppqy zPfxn*gZ_H>H^x9^@ z9TF1f9IsNb-HMT~u<(80vt8G$G1%3_F5?gyC1B3n1Bf0WmSYA1ArH`>m#nE-DnjP@ zvt|@}SIv;k!hPLvww7I-q|&5+gXh41L4n9H!bQCF>}YT%|Mm!MX};(>#t%M@8@*l9+7XPj3E}e7|N$t`|KIi-V)vS#o;^KWBODw_1av zhf}5KCD<-KUS5Ix4}SbC`C|)o|D`nqD^eC%-1bA;bAzY@=aS8>lkRSEf2Du#PNpx?XtaM2?l^QS=}R_&100xsT~Sh3wX&(JN?aY)4vW2G8+F7&!*(f|})KMG?x z2zgoOW1!E^ibHrl#&(Q(2B-PltNEcZmV$Ubb4{C{5z6WGlsNH>2T`xtOQwkZ@J$hT zfk-Y=&S4#EQ1;IO6$D9wFW{w#f3(4WfRuAQFANk2sd+SVL}L~SS%^$0Ytyv1xCjgv zFG)N;>`{xsjme0gqV~9Omc!GVwo}@TIxZ^dN;%KZ!G>`*>)LcC*Wjh(q7~x{iyogR zKDS-V_8m6q&GS~iaz4VY1H(~*_~by4`Lwl1>V4? H<1_d#PNNSt literal 0 HcmV?d00001 diff --git a/agent/agent.py b/agent/agent_base.py similarity index 98% rename from agent/agent.py rename to agent/agent_base.py index 2e44ea0..55daf03 100644 --- a/agent/agent.py +++ b/agent/agent_base.py @@ -2,7 +2,7 @@ import openai import yaml -class Agent: +class AgentBase: def __init__(self, role): """ Initialize an Agent object. diff --git a/agent/manager_agent.py b/agent/manager_agent.py index 0f63727..4cc7c8c 100644 --- a/agent/manager_agent.py +++ b/agent/manager_agent.py @@ -1,24 +1,27 @@ -from agent.agent import Agent +import json +from agent.agent_base import AgentBase from work_principle.okr_principle import OKR_Object - -class ManagerAgent(Agent): +import logging +logging.basicConfig(level=logging.INFO) +class ManagerAgent(AgentBase): def __init__(self): super().__init__("你是一名总经理,负责对任务进行可量化的评估") + self.logger = logging.getLogger(__name__) - def optimization_Object(self, object:OKR_Object): - object.content # todo 待加入 PDCA循环规则 # 利用 smart 原则对目标进行评估 - for i in object.five_w_two_h.content: - r = self.call_gpt(f"你觉得'{object.content}',说清楚了{i['descriptions']}吗?如果说清楚,返回{i}否则返回'no'") - if r == "no": - input(f"请说清楚'{object.content}'的{i},按回车键继续") - else: - i['content'] = r - - - - for k, v in object.smart.items(): - self.call_gpt(f"你觉得'{object.content}'这个目标,就{k}来说满分是3分可以打几分,只返回给1或2或3,比如2") + for k,i in object.five_w_two_h.content.items(): + r = {'是否具备': 'no'} + content = object.content + while r["是否具备"]=="no" : + prompt = f"这是一个任务描述:'{content}'。你觉得这个任务描述具备{i['descriptions']}吗?如果具备返回格式如下:{{'是否具备': 'yes'}},如果不具备返回格式如下:{{'是否具备': 'no', '原因': '返回具体原因即可'}}" + self.logger.info(prompt) + call_openai = self.call_gpt(prompt) + self.logger.info(call_openai) + r = json.loads(call_openai) + if r["是否具备"]=="no": + content = input(f"您的任务描述不清楚,{r['原因']}:") + i['content'] = content + self.logger.info(str(object.five_w_two_h.content)) diff --git a/agent/plan_agent.py b/agent/plan_agent.py index e89d280..bd41575 100644 --- a/agent/plan_agent.py +++ b/agent/plan_agent.py @@ -1,5 +1,5 @@ -from agent.agent import Agent +from agent.agent_base import AgentBase -class WokerAgent(Agent): +class WokerAgent(AgentBase): def __init__(self): super().__init__("你是一名计划拆解者,负责对OKR中的O进行拆解并制定KR,向总经理汇报") diff --git a/agent/woker_agent.py b/agent/woker_agent.py index d18255d..f526b04 100644 --- a/agent/woker_agent.py +++ b/agent/woker_agent.py @@ -1,5 +1,5 @@ -from agent.agent import Agent +from agent.agent_base import AgentBase -class WokerAgent(Agent): +class WokerAgent(AgentBase): def __init__(self): super().__init__("你是一名工作者,负责执行OKR中的KR,向总计划制定者汇报") diff --git a/main.py b/main.py index 100b43d..8b99bd0 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,5 @@ - from agent.manager_agent import ManagerAgent -from work_principle.okr_principle import OKR +from work_principle.okr_principle import OKR_Object class AutoMate: @@ -9,10 +8,9 @@ class AutoMate: def rule_define(self): - o_kr = OKR() - o_kr.set_objective(input("请输入任务: ")) - ManagerAgent().call_gpt(o_kr) - + # o_kr = OKR_Object(input("请输入任务: ")) + o_kr = OKR_Object("对比一下copilot和curson谁更好用") + ManagerAgent().optimization_Object(o_kr) diff --git a/work_principle/__pycache__/five_w_two_h.cpython-39.pyc b/work_principle/__pycache__/five_w_two_h.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8f8a0126c8671635610ebe5f28e649de6b5afc5f GIT binary patch literal 622 zcmY*Xy=&V*6u*ymSd}x^#47LjR9jEj!7at#s%+t2OF_-}}1vd-w6qYcv)R$eZ(TY|B7sq=TxM z5Ih5jxE=u7??Fx-w5~E z>sL8{(R8qy6HI0z_Hm_~_G^IWfOG|v?nBLQ<@&q5>ByV-ae!`!B}QmbzxG(p)<$}OI1);$3I0m7`e&j0`b literal 0 HcmV?d00001 diff --git a/work_principle/__pycache__/okr_principle.cpython-39.pyc b/work_principle/__pycache__/okr_principle.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b3d47e2b168fcbe09fe5fc847a9a3fcac3ce3ec1 GIT binary patch literal 2720 zcma)8&2QsG6rZu3#BtNzr7RV@g~fa-Mi3P(5>i!FMIb<0ZB}X*kfNfI>zTH096OzH zS{h|f-6KMRzo2`p_Fv#H@s-n_5aPy(_r|gF)k;h>FY{*Jym?>q8~e-44uSUa*O%h& zDj|O&Gu=#JwxO#}fN;WTM0&JCDfyOggPYF@H!qBi0i4Avz*T@Vd3Bd~wO6o%cr>ej z6P}76pPnV(1voR^3}CjQtIvT5(xIGm3{JW6oPZXSTksEhc@_REyvA+#ukt!~;J?O~ z;FLz@JbARkp6nlsAPrDo(Qu6YE9mM0kP#gbMh*#3%5iL@<^^&VC%fdzXiExGUL~sq zNt}u}&6c|2oJpYuQK~Y#FOx%Hltisr;{d#3XDmHS*pX*smJ-o{tiaM0kr>l|9|jwH zT%3w1>F@c2G?K_};adIk%w{Z%!;~@9q--FBR`qZA`oz&z zA+_K!=1Y5g9|j|GOfKn&zJPp<=%q0tIMUwIwr5I6ILWGhzb|5*Eh~|-M8^?4^9)(X zRc8_c?Nv^eaOsxMIh!owoU(ur+MvUGQ^wB91sLU`VJJ(Jw}Hu%kA{CuF6c9w(!2~t z6!{A(KjsxoUA&T-Bj8gD=^CcdK*zjl``QC`LAP1~g8Bc+c?MBACchac)^46HkIEXX zLL!aUddKL>d2gM~C{$^X^!i(OK=2>vWZ0VWa?t0HV8~`(C9TaU3H(TH!Jyc9tz`-n zsZ}6g*DbV*ldkatq2vT^0yt#6;;`7(_CQw92W{%Sf%VNp5sRPua_cn|xeH|Y>Ho5? z*eBnBJzga*3)7DxeNJYoK`%2S5sz!4b9a(-Rr)(`&h5E)+y>p_dcH$fsBH}I-)vlf zHBmGimo@SxFnE!V$tn0af|5Q4ep45h05_c*pNTgV> z6boN(VR{{NF)n0>&R97oxN!MOxOr>VN^Rpks7|aVA$cTVR)q# z-dRE&>dXdkPPFaW2qm%K6O3gJW4(kAA{;juI~n*J4g`0rU+hc zStLT?qHWk!+p=r6rRM{fnrRq|ZRn~AWCHB~>-yOMSl15*z;QL2qA3cVDDuLd5R6w)?a7^|6JIMS7I*Df6)Q3JuL-0LOl>VMl2*i)nY^ z_=(vwDBqmm{f4_MAhzgjIq4oG@>>6Iu6zw-`k~cNEPz>o%o5)Q&&(_gbdD_b@}%M# zd;l`@WrsD|f<7*Nd<}=IGgWf)b6DO;EZO`6puB$o`5(e;aWszSk4DgX2wkBbLWgU! z$Iis^=9uWGSjPm=ipo`_m&OZ#_=zoMj_KM6lrOBpM`_NgtT9~+Ux2`LWHhRl_op>2 z+V*PFMSbrgc@IcdV~i&OV>u9@yYeF>*IobjVF7n)6t}6>uq$x+aklMQoweC7o7VK_ ck^W-RFrme-)1KLzIYe#Y=YfXbhH>k`e-9jFI{*Lx literal 0 HcmV?d00001 diff --git a/work_principle/five_w_two_h.py b/work_principle/five_w_two_h.py index d0231e4..381f80a 100644 --- a/work_principle/five_w_two_h.py +++ b/work_principle/five_w_two_h.py @@ -1,11 +1,8 @@ class FiveWTwoH: def __init__(self) -> None: self.content = { - "who": {"content": "", "descriptions": "谁来做这个任务"}, - "what": {"content": "", "descriptions": "这个任务是什么"}, - "when": {"content": "", "descriptions": "什么时候完成这个任务"}, - "where": {"content": "", "descriptions": "在哪里做这个任务"}, + "what": {"content": "", "descriptions": "任务主体、动作、数量"}, "why": {"content": "", "descriptions": "为什么要做这个任务"}, - "how": {"content": "", "descriptions": "这个任务如何做"}, + # "how": {"content": "", "descriptions": "这个任务如何做", "example": ["通过线上直播发布会,合作伙伴渠道和社交媒体宣传", "通过增加人员、改善流程和引入新的服务软件"]}, "how_much": {"content": "", "descriptions": "这个任务要做成什么程度"} - } \ No newline at end of file + } diff --git a/work_principle/okr_principle.py b/work_principle/okr_principle.py index 2304b64..07a498c 100644 --- a/work_principle/okr_principle.py +++ b/work_principle/okr_principle.py @@ -1,13 +1,14 @@ -from work_principle.okr_principle import OKR_KeyResult from work_principle.five_w_two_h import FiveWTwoH + class OKR_Object: + def __init__(self, content): self.content = content self.key_results = [] self.progress = 0 self.five_w_two_h = FiveWTwoH() - def add_key_result(self, key_result:OKR_KeyResult): + def add_key_result(self, key_result): self.key_results.append(key_result) key_result.set_objective(self)