my_trace.py 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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_smith()
  33. # return set_trace_logfire()
  34. def set_trace_smith():
  35. from agents.tracing.setup import GLOBAL_TRACE_PROVIDER
  36. GLOBAL_TRACE_PROVIDER.shutdown()
  37. from agents import set_trace_processors
  38. from langsmith.wrappers import OpenAIAgentsTracingProcessor
  39. import logging
  40. current_time = get_current_time()
  41. set_trace_processors([OpenAIAgentsTracingProcessor(name=f'{current_time}')])
  42. import urllib.parse
  43. LOG_LEVEL = "WARNING"
  44. # 设置日志
  45. logging.basicConfig(
  46. level=getattr(logging, LOG_LEVEL),
  47. format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
  48. )
  49. logger = logging.getLogger(__name__)
  50. current_time_encoded = urllib.parse.quote(current_time)
  51. 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'
  52. LOG_LEVEL = "WARNING"
  53. logger.warning(f"任务日志链接: {log_url}")
  54. return current_time, log_url
  55. def set_debug():
  56. import logging
  57. # 设置全局日志级别为DEBUG,确保所有模块生效
  58. logging.basicConfig(
  59. level=logging.DEBUG,
  60. format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
  61. )
  62. # 确保根日志记录器也设置为DEBUG级别
  63. logging.getLogger().setLevel(logging.DEBUG)
  64. def set_info():
  65. import logging
  66. # 设置全局日志级别为INFO,确保所有模块生效
  67. logging.basicConfig(
  68. level=logging.INFO,
  69. format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
  70. )
  71. # 确保根日志记录器也设置为INFO级别
  72. logging.getLogger().setLevel(logging.INFO)