mirror of
https://github.com/yv1ing/MollyAudit.git
synced 2025-09-16 14:55:50 +08:00
Refactor code to deprecate text embedding
This commit is contained in:
48
agents/CSA/__init__.py
Normal file
48
agents/CSA/__init__.py
Normal file
@@ -0,0 +1,48 @@
|
||||
"""
|
||||
===软件架构师===
|
||||
用于分析项目的整体框架,抽取出清晰的项目结构和功能划分
|
||||
"""
|
||||
from langchain_core.messages import SystemMessage
|
||||
from langchain_core.prompts import HumanMessagePromptTemplate, ChatPromptTemplate
|
||||
from langchain_openai import ChatOpenAI
|
||||
from langchain_community.callbacks.manager import get_openai_callback
|
||||
from agents.CSA.prompt import CSA_SYSTEM_PROMPT, CSA_HUMAN_PROMPT
|
||||
from logger import Logger
|
||||
|
||||
|
||||
class CSA:
|
||||
def __init__(self, base_url, api_key, model, process_output_callback):
|
||||
# LLM配置
|
||||
self.llm = ChatOpenAI(base_url=base_url, api_key=api_key, model=model)
|
||||
|
||||
# 提示词配置
|
||||
self.system_prompt = CSA_SYSTEM_PROMPT
|
||||
self.human_prompt = CSA_HUMAN_PROMPT
|
||||
|
||||
# 日志器配置
|
||||
self.log = Logger(name='CSA', callback=process_output_callback)
|
||||
|
||||
|
||||
def analyse(self, project_structure):
|
||||
self.log.info('CSA开始分析项目模块')
|
||||
|
||||
# 提示词模板
|
||||
self.llm_tmpl = ChatPromptTemplate.from_messages([
|
||||
SystemMessage(content=self.system_prompt),
|
||||
HumanMessagePromptTemplate.from_template(template=self.human_prompt),
|
||||
])
|
||||
|
||||
# 调用链配置
|
||||
self.llm_chain = self.llm_tmpl | self.llm
|
||||
|
||||
# 获取分析结果
|
||||
with get_openai_callback() as cb:
|
||||
result = self.llm_chain.invoke({'project_structure': project_structure})
|
||||
|
||||
# TODO: 接入token用量统计
|
||||
# print(f"请求消耗的输入 token 数: {cb.prompt_tokens}")
|
||||
# print(f"请求消耗的输出 token 数: {cb.completion_tokens}")
|
||||
# print(f"请求总共消耗的 token 数: {cb.total_tokens}")
|
||||
|
||||
self.log.info('CSA完成分析项目模块')
|
||||
return result.content
|
||||
Reference in New Issue
Block a user