import pandas as pd import re import json # Add this line at the top of your script from AgentProxy import AgentProxy # Read the Excel file df = pd.read_excel('analysis_result_top200.xlsx') statistic = {} # Iterate through the "example" column for index, row in df.iterrows(): text = row['销售动作分析'] # Extract text enclosed by '**', by using regular expression print(index) stage = row['Sales stage'] if stage not in statistic: statistic[stage] = {} statistic[stage]['total'] = 0 statistic[stage]['total'] += 1 matches = re.findall(r'\*\*(.*?)\*\*', text) for match in matches: print(f"{match}") # Print as markdown title # iterate all the matches if match not in statistic[stage]: statistic[stage][match] = 0 statistic[stage][match] += 1 if len(matches) > 0: df.at[index, '销售动作'] = ','.join(matches) else: df.at[index, '销售动作'] = '' df.to_excel('analysis_result_top200.xlsx', index=False) print(statistic) action_dict = {} # Calculate the percentage distribution of each action within each stage for stage, actions in statistic.items(): total = actions.pop('total') print(f"Stage: {stage}") for action, count in actions.items(): percentage = (count / total) * 100 print(f" {action}: {percentage:.2f}%") action_dict[action] = action print(len(action_dict.keys())) prompt_abstract_actions = f"以下是销售动作的文字描述,{','.join(action_dict.keys())} 请根据这些结果,总结出抽象的销售动作,以便于将上述销售动作归纳到抽象的销售动作中" api_key = '25bda2c39c0f8ca0' api_secret = 'e0008b9b9727cb8ceea5a132dbe62495' assistant_id = "66bb09a84673b57506fe7bbd" agent = AgentProxy(assistant_id, api_key, api_secret) # res = agent.send_message(prompt_abstract_actions) # print(res) abstract_actions = [ "客户接触与需求识别", "产品演示与方案提供", "商务谈判与合同准备", "项目支持与优化", "市场分析与策略调整", "内部协调与支持", "合同审查与订单处理", "客户关系维护", "后续跟进与机会挖掘" ] full_mapping = [] for i in range(0, len(action_dict.keys()), 20): group = list(action_dict.keys())[i:i+20] prompt_abstract_actions = f"以下是销售动作的文字描述,{','.join(group)}; 以下是抽象销售动作, {','.join(abstract_actions)}; 请根据上述信息,将销售动作归纳到抽象的销售动作中并给出映射关系, 用json数组返回,销售动作字段为action, 抽象销售动作字段为abstract_action" res = agent.send_message(prompt_abstract_actions) try: json_match = re.search(r'```json\s*(.*?)\s*```', res, re.DOTALL) if json_match: json_data = json_match.group(1) mapping = json.loads(json_data) else: mapping = [] except Exception as e: print(f"Error parsing response: {e}") mapping = [] print(res) print(mapping) full_mapping.extend(mapping) print(full_mapping)