my_trace.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. from datetime import datetime
  2. import logging
  3. def get_current_time():
  4. import uuid
  5. random_uuid = str(uuid.uuid4())
  6. return datetime.now().strftime("%Y%m%d/%H%M%S") + "_" + random_uuid[:2]
  7. def set_trace_logfire():
  8. from agents.tracing.setup import GLOBAL_TRACE_PROVIDER
  9. GLOBAL_TRACE_PROVIDER.shutdown()
  10. import logfire
  11. current_time = get_current_time()
  12. logfire.configure(service_name=f'{current_time}')
  13. logfire.instrument_openai_agents()
  14. import urllib.parse
  15. current_time_encoded = urllib.parse.quote(current_time)
  16. import logging
  17. LOG_LEVEL = "WARNING"
  18. # 设置日志
  19. logging.basicConfig(
  20. level=getattr(logging, LOG_LEVEL),
  21. format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
  22. )
  23. logger = logging.getLogger(__name__)
  24. log_url = f'https://logfire-us.pydantic.dev/semsevens/test?q=service_name+%3D+%27{current_time_encoded}%27&last=30d'
  25. logger.warning(f"任务日志链接: {log_url}")
  26. return current_time, log_url
  27. def set_trace():
  28. # 设置全局logging级别,覆盖所有子模块
  29. logging.basicConfig(level=logging.WARNING, force=True)
  30. # 确保根logger级别生效
  31. logging.getLogger().setLevel(logging.WARNING)
  32. return set_trace_logfire()
  33. def set_trace_smith():
  34. from agents.tracing import GLOBAL_TRACE_PROVIDER
  35. GLOBAL_TRACE_PROVIDER.shutdown()
  36. from agents import set_trace_processors
  37. from langsmith.wrappers import OpenAIAgentsTracingProcessor
  38. import logging
  39. current_time = get_current_time()
  40. set_trace_processors([OpenAIAgentsTracingProcessor(name=f'{current_time}')])
  41. import urllib.parse
  42. LOG_LEVEL = "WARNING"
  43. # 设置日志
  44. logging.basicConfig(
  45. level=getattr(logging, LOG_LEVEL),
  46. format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
  47. )
  48. logger = logging.getLogger(__name__)
  49. current_time_encoded = urllib.parse.quote(current_time)
  50. log_url = f'https://smith.langchain.com/o/3ebe0715-9709-4594-a0aa-40a77a4e10bd/projects/p/611fa0d6-5510-4f60-b693-87e2ccc2ea5f?timeModel=%7B%22duration%22%3A%227d%22%7D&searchModel=%7B%22filter%22%3A%22and%28eq%28is_root%2C+true%29%2C+eq%28name%2C+%5C%22{current_time_encoded}%5C%22%29%29%22%2C%22searchFilter%22%3A%22eq%28is_root%2C+true%29%22%7D'
  51. LOG_LEVEL = "WARNING"
  52. logger.warning(f"任务日志链接: {log_url}")
  53. def set_debug():
  54. import logging
  55. # 设置全局日志级别为DEBUG,确保所有模块生效
  56. logging.basicConfig(
  57. level=logging.DEBUG,
  58. format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
  59. )
  60. # 确保根日志记录器也设置为DEBUG级别
  61. logging.getLogger().setLevel(logging.DEBUG)
  62. def set_info():
  63. import logging
  64. # 设置全局日志级别为INFO,确保所有模块生效
  65. logging.basicConfig(
  66. level=logging.INFO,
  67. format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
  68. )
  69. # 确保根日志记录器也设置为INFO级别
  70. logging.getLogger().setLevel(logging.INFO)