code_generation.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. """
  2. 代码生成服务
  3. 提供基于LLM的代码生成功能
  4. """
  5. import logging
  6. from app.core.llm.llm_service import llm_client
  7. logger = logging.getLogger("app")
  8. def code_generate_standard(describe, relation):
  9. """
  10. 生成数据标准相关的代码
  11. Args:
  12. describe: 描述文本
  13. relation: 关系字典,包含输入和输出参数
  14. Returns:
  15. str: 生成的代码
  16. """
  17. try:
  18. prompt = f"""
  19. 请根据以下描述和参数生成一个标准的Python函数:
  20. 描述: {describe}
  21. 输入参数: {relation['输入参数']}
  22. 输出参数: {relation['输出参数']}
  23. 请提供标准实现的Python代码。
  24. """
  25. result = llm_client(prompt)
  26. return result if result else "代码生成失败,请重试"
  27. except Exception as e:
  28. logger.error(f"代码生成失败: {str(e)}")
  29. return f"代码生成错误: {str(e)}"
  30. def code_generate_metric(content, relation):
  31. """
  32. 生成数据指标相关的代码
  33. Args:
  34. content: 指标规则描述
  35. relation: 映射关系字典
  36. Returns:
  37. str: 生成的代码
  38. """
  39. try:
  40. prompt = f"""
  41. 请根据以下指标规则和映射关系生成一个Python函数:
  42. 指标规则: {content}
  43. 映射关系: {relation}
  44. 请提供标准实现的Python代码。
  45. """
  46. result = llm_client(prompt)
  47. return result if result else "代码生成失败,请重试"
  48. except Exception as e:
  49. logger.error(f"指标代码生成失败: {str(e)}")
  50. return f"代码生成错误: {str(e)}"