如何建设公司网站 需要注意什么,我的家乡网站建设,微商城怎么弄,做游戏陪玩网站GTESeqGPT日志监控教程#xff1a;检索响应时间/生成token数/错误率埋点 1. 为什么需要监控AI系统#xff1f; 当你搭建了一个AI语义搜索和对话系统后#xff0c;最头疼的问题就是#xff1a;用户用得好好的#xff0c;突然就不响应了#xff0c;或者回答变得很奇怪。你…GTESeqGPT日志监控教程检索响应时间/生成token数/错误率埋点1. 为什么需要监控AI系统当你搭建了一个AI语义搜索和对话系统后最头疼的问题就是用户用得好好的突然就不响应了或者回答变得很奇怪。你完全不知道发生了什么只能靠猜来解决问题。这就是为什么我们需要给AI系统加上眼睛和耳朵——也就是监控系统。通过监控你可以实时看到用户搜索一次要花多长时间每次生成回答用了多少计算资源系统有没有出错出错频率是多少哪些功能最受欢迎哪些几乎没人用有了这些数据你就能快速定位问题优化系统让用户体验更好。接下来我会手把手教你如何给GTESeqGPT系统添加完整的监控能力。2. 环境准备与基础配置2.1 安装必要的监控库首先确保你的环境中已经安装了这些Python库pip install prometheus-client0.20.0 pip install loguru0.7.2 pip install requests2.32.32.2 创建监控配置文件新建一个monitoring_config.py文件用来存放所有的监控配置# 监控配置 MONITORING_CONFIG { prometheus_port: 8000, # 监控数据暴露端口 log_level: INFO, # 日志级别 metrics_prefix: gte_seqgpt, # 指标前缀 enable_metrics: True, # 是否启用指标收集 enable_logging: True # 是否启用日志记录 } # 关键指标定义 METRICS { search_response_time: search_response_time_seconds, generate_token_count: generate_token_count_total, error_rate: error_rate_total, request_count: request_count_total }3. 核心监控指标实现3.1 响应时间监控响应时间是用户最直观的感受。我们来给搜索功能添加计时监控import time from prometheus_client import Summary, Counter # 创建监控指标 SEARCH_RESPONSE_TIME Summary( gte_search_response_time_seconds, GTE搜索响应时间, [query_type] ) GENERATE_RESPONSE_TIME Summary( seqgpt_generate_response_time_seconds, SeqGPT生成响应时间, [task_type] ) SEARCH_RESPONSE_TIME.labels(query_typesemantic).time() def semantic_search(query, knowledge_base): 带监控的语义搜索函数 try: # 这里是你的搜索逻辑 start_time time.time() # 模拟搜索过程 results [] for item in knowledge_base: # 实际这里应该是向量相似度计算 similarity calculate_similarity(query, item[text]) results.append({ text: item[text], score: similarity }) # 按相似度排序 results.sort(keylambda x: x[score], reverseTrue) return results[:3] # 返回前3个结果 except Exception as e: # 错误处理会在后面讲到 raise e3.2 Token数量监控生成式AI的成本主要来自Token消耗监控这个指标很重要from prometheus_client import Counter GENERATE_TOKEN_COUNT Counter( seqgpt_generate_token_count_total, SeqGPT生成的总token数, [task_type, model_version] ) def monitored_generate_text(prompt, task_typegeneral): 带监控的文本生成函数 try: # 这里是你的生成逻辑 generated_text generate_with_seqgpt(prompt) # 计算token数量简化版实际应该用tokenizer token_count len(generated_text.split()) # 记录token数量 GENERATE_TOKEN_COUNT.labels( task_typetask_type, model_version560m ).inc(token_count) return generated_text except Exception as e: # 错误处理 raise e3.3 错误率监控错误率是系统健康度的重要指标from prometheus_client import Counter ERROR_COUNTER Counter( gte_seqgpt_errors_total, 系统错误总数, [error_type, function_name] ) def track_errors(func): 错误监控装饰器 def wrapper(*args, **kwargs): try: return func(*args, **kwargs) except Exception as e: error_type type(e).__name__ function_name func.__name__ # 记录错误 ERROR_COUNTER.labels( error_typeerror_type, function_namefunction_name ).inc() # 重新抛出异常 raise e return wrapper # 使用装饰器监控函数 track_errors def your_ai_function(param1, param2): # 你的业务逻辑 pass4. 完整监控系统集成4.1 创建监控管理器新建一个monitoring_manager.py文件来统一管理所有监控功能import time import logging from prometheus_client import start_http_server, Summary, Counter, Gauge from loguru import logger class MonitoringManager: def __init__(self, config): self.config config self.metrics {} self.setup_metrics() def setup_metrics(self): 初始化所有监控指标 prefix self.config[metrics_prefix] # 响应时间指标 self.metrics[search_time] Summary( f{prefix}_search_response_time_seconds, 搜索响应时间, [query_type] ) self.metrics[generate_time] Summary( f{prefix}_generate_response_time_seconds, 生成响应时间, [task_type] ) # Token计数指标 self.metrics[token_count] Counter( f{prefix}_generate_token_count_total, 生成的总token数, [task_type, model_type] ) # 错误率指标 self.metrics[error_count] Counter( f{prefix}_errors_total, 错误总数, [error_type, function_name] ) # QPS指标每秒查询数 self.metrics[qps] Gauge( f{prefix}_qps, 当前QPS ) def start_monitoring_server(self): 启动监控服务器 start_http_server(self.config[prometheus_port]) logger.info(f监控服务器启动在端口 {self.config[prometheus_port]}) def track_search(self, query_type): 搜索监控上下文管理器 return self.metrics[search_time].labels(query_typequery_type).time() def track_generate(self, task_type): 生成监控上下文管理器 return self.metrics[generate_time].labels(task_typetask_type).time() def record_tokens(self, count, task_type, model_type): 记录token数量 self.metrics[token_count].labels( task_typetask_type, model_typemodel_type ).inc(count) def record_error(self, error_type, function_name): 记录错误 self.metrics[error_count].labels( error_typeerror_type, function_namefunction_name ).inc() # 全局监控实例 monitor MonitoringManager(MONITORING_CONFIG)4.2 集成到现有代码现在把监控集成到你的主要业务代码中from monitoring_manager import monitor def main(): # 启动监控服务器 monitor.start_monitoring_server() # 你的业务逻辑 knowledge_base [ {text: 今天天气晴朗适合外出}, {text: Python是一种编程语言}, # ... 其他知识库条目 ] while True: try: user_query input(请输入你的问题: ) # 监控搜索 with monitor.track_search(query_typesemantic): results semantic_search(user_query, knowledge_base) if results: # 监控生成 with monitor.track_generate(task_typeqa): prompt f根据以下信息回答问题: {results[0][text]}\n问题: {user_query} answer generate_with_seqgpt(prompt) # 记录token数量 token_count len(answer.split()) monitor.record_tokens(token_count, qa, seqgpt-560m) print(f回答: {answer}) except Exception as e: error_type type(e).__name__ monitor.record_error(error_type, main_loop) print(f发生错误: {e}) if __name__ __main__: main()5. 数据可视化与告警5.1 配置Prometheus监控创建prometheus.yml配置文件global: scrape_interval: 15s scrape_configs: - job_name: gte_seqgpt static_configs: - targets: [localhost:8000] metrics_path: /metrics5.2 Grafana仪表板配置创建一个漂亮的监控仪表板包含以下面板响应时间面板显示搜索和生成的平均响应时间、P95、P99Token消耗面板显示不同任务类型的Token消耗趋势错误率面板显示系统错误率和错误类型分布QPS面板显示系统吞吐量变化5.3 关键告警规则设置这些重要的告警规则groups: - name: gte_seqgpt_alerts rules: - alert: HighResponseTime expr: gte_seqgpt_search_response_time_seconds{quantile0.95} 2 for: 5m labels: severity: warning annotations: summary: 搜索响应时间过高 - alert: HighErrorRate expr: rate(gte_seqgpt_errors_total[5m]) 0.1 for: 2m labels: severity: critical annotations: summary: 系统错误率过高 - alert: HighTokenUsage expr: rate(gte_seqgpt_generate_token_count_total[5m]) 1000 for: 10m labels: severity: warning annotations: summary: Token使用量异常升高6. 实战案例分析监控数据6.1 识别性能瓶颈通过监控数据你可能会发现# 假设你发现搜索响应时间很长 # 可以在代码中添加更细粒度的监控 SEARCH_STEPS_TIME Summary( gte_search_steps_time_seconds, 搜索各步骤时间, [step_name] ) def detailed_semantic_search(query, knowledge_base): with SEARCH_STEPS_TIME.labels(step_namevectorize).time(): # 向量化步骤 query_vector vectorize_query(query) with SEARCH_STEPS_TIME.labels(step_namesimilarity).time(): # 相似度计算步骤 similarities calculate_similarities(query_vector, knowledge_base) with SEARCH_STEPS_TIME.labels(step_namesorting).time(): # 排序步骤 results sort_results(similarities) return results6.2 优化资源分配根据监控数据调整资源分配# 根据token使用情况动态调整生成参数 def adaptive_generate(prompt, task_type): token_budget 100 # 默认token预算 # 如果最近token使用量很高减少预算 recent_usage get_recent_token_usage() if recent_usage 500: token_budget 50 # 根据任务类型调整 if task_type summary: token_budget 150 elif task_type title: token_budget 10 return generate_with_budget(prompt, token_budget)7. 总结通过这个完整的监控教程你现在应该能够监控关键指标响应时间、Token数量、错误率搭建监控系统使用Prometheus收集数据Grafana展示数据设置智能告警在问题发生前获得通知分析优化系统基于数据做出明智的优化决策记住好的监控系统就像给AI系统装上了仪表盘让你能够实时了解系统状态快速发现问题持续优化体验。现在就开始给你的GTESeqGPT系统添加监控吧从最简单的响应时间监控开始逐步完善整个监控体系。你的用户会感谢你的毕竟没人喜欢用经常出问题的AI系统。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。