openAI api 生产最佳实践

2023-11-11

生产最佳实践

本指南提供了一套全面的最佳实践,帮助您从原型过渡到生产。无论您是经验丰富的机器学习工程师还是最近的爱好者,本指南都应为您提供将平台成功投入生产环境所需的工具:从确保访问我们的API到设计能够处理高流量的健壮架构。使用本指南可帮助制定尽可能平稳有效地部署应用程序的计划。

设置您的组织

登录OpenAI帐户后,您可以在组织设置中找到组织名称和ID。组织名称是组织的标签,显示在用户界面中。组织ID是组织的唯一标识符,可用于API请求。

属于多个组织的用户可以传递一个标头来指定用于API请求的组织。这些API请求的使用将计入指定组织的配额。如果未提供标题,将对默认组织进行计费。您可以在用户设置中更改默认组织。

您可以从成员设置页面邀请新成员加入您的组织。成员可以是读者或所有者。读者可以提出API请求并查看基本组织信息,而所有者可以修改计费信息并管理组织内的成员。

管理计费限制

新的免费试用用户将获得 18 美元的初始信用额度,该信用额度将在三个月后过期。信用额度使用或过期后,您可以选择输入账单信息以继续使用 API。如果未输入帐单信息,您仍将具有登录访问权限,但无法发出任何进一步的 API 请求。

输入账单信息后,您将获得每月 120 美元的批准使用限制,该限制由 OpenAI 设置。要将配额提高到 $120 的每月计费限制之外,请提交配额增加请求。

如果您希望在使用量超过特定数量时收到通知,可以通过使用限制页面设置软限制。达到软限制时,组织的所有者将收到电子邮件通知。您还可以设置硬限制,以便在达到硬限制后,任何后续 API 请求都将被拒绝。请注意,这些限制是尽力而为的,在使用和强制实施的限制之间可能会有 5 到 10 分钟的延迟。

接口密钥 API keys

OpenAI API 使用 API 密钥进行身份验证。访问您的 API 密钥页面,检索您将在请求中使用的 API 密钥。

这是控制访问的一种相对简单的方法,但您必须警惕保护这些密钥。避免在代码或公共存储库中公开 API 密钥;相反,请将它们存储在安全的位置。应使用环境变量或机密管理服务向应用程序公开密钥,这样就无需在代码库中对密钥进行硬编码。有关详细信息,请参阅我们的 API 密钥安全最佳实践。

暂存帐户

扩展时,可能需要为过渡环境和生产环境创建单独的组织。请注意,您可以使用两个单独的电子邮件地址(如 bob+prod@widgetcorp.com 和 bob+dev@widgetcorp.com)进行注册,以创建两个组织。这将允许您隔离开发和测试工作,这样您就不会意外中断您的实时应用程序。您还可以通过这种方式限制对生产组织的访问。

构建您的原型

如果你尚未阅读快速入门指南,我们建议你先从入门指南开始,然后再深入阅读本指南的其余部分。

对于那些刚接触OpenAI API的人来说,我们的 playground 可以成为探索其功能的绝佳资源。这样做将帮助您了解什么是可能的,以及您可能希望将精力集中在何处。您还可以浏览我们的示例提示。

虽然 playground 是制作原型的好地方,但它也可以用作大型项目的孵化区。playground 还可以轻松导出 API 请求的代码片段并与协作者共享提示,使其成为开发过程中不可或缺的一部分。

其他提示

  1. 首先确定您希望应用程序具有的核心功能。 考虑您需要的数据输入、输出和流程的类型。旨在使原型尽可能集中,以便您可以快速有效地进行迭代。
  2. 选择您最熟悉且最符合您的项目目标的编程语言和框架。一些流行的选项包括Python,Java和Node.js。请参阅库支持页面,了解有关我们的团队和更广泛的开发人员社区维护的库绑定的更多信息。
  3. 开发环境和支持: 使用正确的工具和库设置开发环境,并确保拥有训练模型所需的资源。利用我们的文档、社区论坛和帮助中心获取故障排除帮助。如果您正在使用 Python 进行开发,请查看此结构化项目指南(存储库结构是项目架构的关键部分)。要与我们的支持工程师联系,只需登录您的帐户并使用“帮助”按钮开始对话。

提高提示可靠性的技术

即使经过仔细规划,在应用程序中使用 GPT-3 时,为意外问题做好准备也很重要。在某些情况下,模型可能会在任务上失败,因此考虑可以执行哪些操作来提高应用程序的可靠性会很有帮助。

如果您的任务涉及逻辑推理或复杂性,您可能需要采取其他步骤来构建更可靠的提示。有关一些有用的建议,请参阅我们的提高可靠性的技术指南。总体而言,建议围绕:

  • 将不可靠的操作分解为更小、更可靠的操作(例如,选择推理提示)
  • 使用多个步骤或多个关系使系统的可靠性高于任何单个组件(例如,maieutic 提示)

评估和迭代

开发生产系统最重要的方面之一是定期评估和迭代实验。此过程允许您测量性能、解决问题和微调模型以提高准确性和效率。此过程的一个关键部分是为功能创建评估数据集。以下是需要记住的几点:

  1. 确保评估集代表模型将在现实世界中使用的数据。这将使您能够评估模型在以前从未见过的数据上的性能,并帮助您了解它对新情况的泛化程度。
  2. **定期更新评估集,**以确保它随着模型的发展和新数据的出现而保持相关性。
  3. 使用各种指标来评估模型的性能。 根据您的应用程序和业务成果,这可能包括准确性、精度、召回率、F1 分数或平均精度 (MAP)。此外,您可以将微调与权重和偏差同步,以跟踪实验、模型和数据集。
  4. 将模型的性能与基线进行比较。 这将使您更好地了解模型的优点和缺点,并有助于指导您未来的开发工作。

通过定期评估和迭代试验,您可以确保 GPT 驱动的应用程序或原型随着时间的推移不断改进。

评估语言模型

语言模型很难评估,因为评估生成的语言的质量通常是主观的,并且有许多不同的方法可以在语言中正确传达相同的信息。例如,当评估一个模型总结一段长文本的能力时,有很多正确的总结。也就是说,设计好的评估对机器学习的进步至关重要。

评估套件需要全面、易于运行且速度合理(取决于模型大小)。还需要很容易地继续添加到套件中,因为一个月的全面内容可能会在另一个月内过时。我们应该优先处理各种各样的任务,这些任务可以识别模型或能力中的弱点,而这些弱点并没有随着规模的扩大而得到改善。

评估系统的最简单方法是手动检查其输出。它在做你想做的事吗?输出是否高质量?它们是否一致?

自动评估

加快测试速度的最佳方法是开发自动评估。但是,这在更主观的应用程序中(如摘要任务)中可能无法实现。

当很容易将最终输出分级为正确或不正确时,自动评估效果最佳。例如,如果要微调分类器以将文本字符串分类为 A 类或 B 类,则相当简单:使用示例输入和输出对创建一个测试集,在输入上运行系统,然后根据正确的输出对系统输出进行分级(查看准确性、F1 分数、交叉熵等指标)。

如果您的输出是半开放式的,就像会议记录摘要器一样,那么定义成功可能会更棘手:例如,是什么让一个摘要比另一个更好?在这里,可能的技术包括:

  • 用“黄金标准”答案编写一个测试,然后测量每个黄金标准答案和系统输出之间的某种相似性分数(我们已经看到嵌入在这方面效果很好)
  • 构建一个鉴别器系统来判断/排名输出,然后给该鉴别器一组输出,其中一个由被测系统生成(这甚至可以是 GPT 模型,询问问题是否被给定输出正确回答)
  • 建立一个评估模型,检查答案组成部分的真实性;例如,检测引用是否实际出现在给定文本中
    对于非常开放的任务,例如创意故事作者,自动评估更加困难。尽管有可能开发质量指标来查看拼写错误、单词多样性和可读性分数,但这些指标并不能真正捕捉到一篇文章的创意质量。在找不到好的自动化指标的情况下,人工评估仍然是最佳方法。

评估基于 GPT-3 的系统的示例过程

作为一个例子,让我们考虑构建基于检索的问答系统的情况。

基于检索的问答系统有两个步骤。首先,用户的查询用于对知识库中可能相关的文档进行排名。其次,GPT-3 获得排名靠前的文档,并要求生成查询的答案。

可以进行评估以衡量每个步骤的性能。

对于搜索步骤,可以:

  • 首先,生成一个包含 ~100 个问题的测试集,并为每个问题生成一组正确的文档
  • 如果您有任何问题,这些问题可以来自用户数据;否则,您可以发明一组风格和难度不同的问题。
  • 对于每个问题,请让一个人手动搜索知识库并记录包含答案的文档集。
  • 其次,使用测试集对系统的性能进行评分
  • 对于每个问题,使用系统对候选文档进行排名(例如,通过文档嵌入与查询嵌入的余弦相似性)。
  • 如果候选文档至少包含 1 个来自答案键的相关文档,则可以以二进制准确性分数 1 对结果进行评分,否则则为 0
  • 您还可以使用连续指标,如平均倒数排名,它可以帮助区分接近正确或远非正确的答案(例如,如果正确的文档是排名 1,则得分为 1/2,如果排名 2,则得分为 1/2,如果排名 3,则得分为 1/3,等等)。

对于问答步骤,可以:

  • 首先,生成一个包含 ~100 组 {问题、相关文本、正确答案} 的测试集
  • 对于问题和相关文本,请使用上述数据
  • 对于正确答案,请让一个人写下~100个例子,说明一个好的答案是什么样子的。
    其次,使用测试集对系统的性能进行评分
  • 对于每个问题和文本对,将它们组合成一个提示,并将提示提交给 GPT-3
  • 接下来,将 GPT-3 的答案与人类编写的黄金标准答案进行比较
  • 这种比较可以是手动的,人们并排查看它们并评分 GPT-3 答案是否正确/高质量
  • 这种比较也可以通过使用嵌入相似性分数或其他方法来自动化(自动化方法可能会有噪音,但只要它是无偏的,并且在你正在测试的不同类型的模型中同样嘈杂,噪声就可以了)
    当然,N=100 只是一个示例,在早期阶段,您可能会从一个更容易生成的较小集合开始,而在后期阶段,您可能会投资一个成本更高但统计上更可靠的较大集合。

扩展解决方案体系结构

在为使用我们的API的生产设计应用程序或服务时,重要的是要考虑如何扩展以满足流量需求。无论您选择哪种云服务提供商,都需要考虑以下几个关键领域:

横向扩展:您可能希望横向扩展应用程序,以适应来自多个源的应用程序请求。这可能涉及部署额外的服务器或容器来分配负载。如果您选择这种类型的扩展,请确保您的体系结构设计为处理多个节点,并且您有适当的机制来平衡它们之间的负载。

垂直扩展:另一个选项是垂直扩展应用程序,这意味着您可以增加单个节点的可用资源。这将涉及升级服务器的功能以处理额外的负载。如果您选择这种类型的扩展,请确保您的应用程序设计为能够利用这些额外的资源。

缓存:通过存储频繁访问的数据,您可以缩短响应时间,而无需重复调用我们的API。您的应用程序需要设计为尽可能使用缓存数据,并在添加新信息时使缓存无效。有几种不同的方法可以做到这一点。例如,您可以将数据存储在数据库、文件系统或内存缓存中,这取决于对应用程序最有意义的内容。

负载平衡:最后,考虑负载平衡技术,以确保请求在可用服务器上均匀分布。这可能涉及在服务器前面使用负载平衡器或使用DNS循环。平衡负载将有助于提高性能并减少瓶颈。

费率限制的管理

使用我们的API时,了解并计划费率限制非常重要。

改善延迟

延迟是处理请求和返回响应所需的时间。在本节中,我们将讨论影响文本生成模型延迟的一些因素,并提供有关如何减少延迟的建议。

完成请求的延迟主要受两个因素影响:模型和生成的令牌数量。完成请求的生命周期如下所示:

Network  	End user to API latency
					↓
Server 		Time to process prompt tokens
  				 	↓
Server    	Time to sample/generate tokens
 				  	↓
Network  	 API to end user latency

大部分延迟通常来自令牌生成步骤。

警告:提示令牌为完成调用增加的延迟非常小。生成完成令牌的时间要长得多,
因为令牌是一次生成一个。由于每个令牌需要生成,较长的生成长度将累积延迟。

影响延迟的常见因素和可能的缓解技术

既然我们已经了解了延迟的基础知识,那么让我们来看看影响延迟的各种因素,大致从最有影响到最不影响。

模型

我们的API提供了具有不同复杂度和通用性的不同模型。最有能力的模型,如text-davinci-003,可以生成更复杂和多样的补全,但它们也需要更长的时间来处理您的查询。诸如text-curie-001之类的模型可以生成更快的完成,但它们可能会生成不太准确或与您的查询相关的结果。您可以选择最适合您的用例的模型以及速度和质量之间的权衡。

完成令牌数

请求大量生成的令牌完成可能会导致延迟增加:

  • 较低的最大令牌数: 对于具有类似令牌生成计数的请求,具有较低 max_tokens 参数的请求产生的延迟更少。
  • 包括停止序列: 要防止生成不需要的令牌,请添加停止序列。例如,您可以使用停止序列生成具有特定数量的项的列表。在这种情况下,通过使用 11.作为停止序列,您可以生成仅包含 10 个项目的列表。阅读我们关于停止序列的帮助文章,了解有关如何执行此操作的更多上下文。
  • 生成较少的完成次数: 尽可能降低 n 和 best_of 的值,其中 n 是指要为每个提示生成的完成次数,best_of用于表示每个令牌具有最高日志概率的结果。
    如果 n 和 best_of 都等于 1(这是默认值),则生成的令牌数最多等于 max_tokens。

如果 n(返回的完成数)或 best_of(为考虑而生成的完成数)设置为 > 1,则每个请求将创建多个输出。在这里,您可以将生成的令牌数量视为 [ max_tokens * max (n, best_of) ]

在请求中设置stream:true使模型在令牌可用时立即开始返回,而不是等待生成完整的令牌序列。它不会改变获取所有令牌的时间,但对于我们希望显示部分进展或将停止生成的应用程序,它会缩短第一个令牌的时间。这可以是更好的用户体验和用户体验的改善,因此值得尝试使用流的方式。

基础设施

我们的服务器目前位于美国。虽然我们希望在未来拥有全球冗余,但同时您可以考虑将基础设施的相关部分定位在美国,以尽量缩短您的服务器与OpenAI服务器之间的往返时间。

批处理

根据您的用例,批处理可能会有所帮助。如果要向同一端点发送多个请求,则可以在同一请求中批量发送提示。这将减少您需要提出的请求数。prompt参数最多可容纳20个唯一提示。我们建议您测试一下这种方法,看看它是否有用。在某些情况下,您可能会增加生成的令牌的数量,这会降低响应时间。

成本管理

为了监控您的成本,您可以在您的帐户中设置一个软限制,以便在您超过某个使用阈值时接收电子邮件警报。您也可以设置硬限制。请注意硬限制可能会对您的应用程序/用户造成中断。使用使用情况跟踪仪表板监控当前和过去计费周期内的令牌使用情况。

文本生成

将原型投入生产的挑战之一是为运行应用程序的相关成本编制预算。OpenAI提供了一种按需付费的定价模式,每1000个tokens 的价格(大约等于750个单词)。要估算成本,您需要预测代币利用率。考虑诸如流量级别、用户与应用程序交互的频率以及要处理的数据量等因素。
考虑降低成本的一个有用框架是将成本视为令牌数量和每个令牌成本的函数。使用该框架有两种潜在的降低成本的途径。 首先,您可以通过为某些任务切换到较小的模型来降低每个令牌的成本。或者,您可以尝试减少所需的令牌数量。有几种方法可以做到这一点,例如使用更短的提示、微调模型或缓存常见的用户查询,这样就不需要重复处理。
您可以尝试使用我们的交互式标记工具来帮助您估算成本。API和playground 还会返回令牌计数作为响应的一部分。一旦您使用了我们最强大的模型,您就可以看到其他模型是否能够以更低的延迟和成本产生相同的结果。在我们的令牌使用帮助文章中了解更多信息。

MLOps 策略

将原型投入生产时,可能需要考虑开发 MLOps 策略。MLOps(机器学习操作)是指管理机器学习模型的端到端生命周期的过程,包括你可能使用我们的 API 进行微调的任何模型。设计 MLOps 策略时需要考虑许多方面。这些包括

  • 数据和模型管理:管理用于训练或微调模型的数据,并跟踪版本和更改。
  • 模型监控:跟踪模型随时间推移的性能,并检测任何潜在问题或降级。
  • 模型重新训练:确保模型与数据变化或不断变化的需求保持同步,并根据需要对其进行重新训练或微调。
  • 模型部署:自动执行将模型和相关项目部署到生产中的过程。
    仔细考虑应用程序的这些方面将有助于确保模型保持相关性并随着时间的推移表现良好。

安全性和合规性

当您将原型投入生产时,您需要评估并解决可能适用于应用程序的任何安全和法规遵从性要求。这将涉及检查您正在处理的数据,了解我们的API如何处理数据,并确定您必须遵守的法规。以下是我们的隐私政策和使用条款,以供参考。

您需要考虑的一些常见领域包括数据存储、数据传输和数据保留。您可能还需要实施数据隐私保护,如加密或匿名(如果可能)。此外,您应该遵循安全编码的最佳实践,例如输入净化和正确的错误处理。

安全最佳实践

使用我们的API创建应用程序时,请考虑我们的安全最佳实践,以确保您的应用程序安全和成功。这些建议强调了广泛测试产品、积极解决潜在问题和限制滥用机会的重要性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openAI api 生产最佳实践 的相关文章

  • 2024 人工智能与大数据专业毕业设计(论文)选题指导

    目录 前言 毕设选题 选题迷茫 选题的重要性 更多选题指导 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生
  • 强烈推荐收藏!LlamaIndex 官方发布高清大图,纵览高级 RAG技术

    近日 Llamaindex 官方博客重磅发布了一篇博文 A Cheat Sheet and Some Recipes For Building Advanced RAG 通过一张图给开发者总结了当下主流的高级RAG技术 帮助应对复杂的生产场
  • 如何快速申请GPT账号?

    详情点击链接 如何快速申请GPT账号 一OpenAI 1 最新大模型GPT 4 Turbo 2 最新发布的高级数据分析 AI画图 图像识别 文档API 3 GPT Store 4 从0到1创建自己的GPT应用 5 模型Gemini以及大模型
  • 机器学习算法实战案例:BiLSTM实现多变量多步光伏预测

    文章目录 1 数据处理 1 1 导入库文件 1 2 导入数据集 1 3 缺失值分析 2 构造训练数据
  • 做大模型也有1年多了,聊聊这段时间的感悟!

    自ChatGPT问世以来 做大模型也有1年多了 今天给大家分享这一年后的感悟 过去一年应该是AI圈最万千瞩目的一年了 大家对大模型 OpenAI ChatGPT AI Native Agent这些词投入了太多的关注 以至于有一年的时间好像经
  • 机器学习算法实战案例:时间序列数据最全的预处理方法总结

    文章目录 1 缺失值处理 1 1 统计缺失值 1 2 删除缺失值 1 3 指定值填充 1 4 均值 中位数 众数填充
  • 怎么把视频压缩变小?节约空间的工具推荐

    nbsp 我平时逛街的时候 看见有趣的事情就忍不住会用视频的方式记录下来 有时候还会拍给朋友看 但是 这些视频占据大量的存储空间 给我的手机带来不小的压力 所以有时候 为了方便分享或传输 我就会将视频文件压缩 以便更轻松地将其发送给朋友或发
  • 海报模板怎么进行编辑文字?公司宣传海报就这样做

    作为负责公司宣传事宜的部门 我每天不是在做海报 就是在找做海报的素材 力求要把这些宣传的物料都做得精致又有内容 经过我长时间的试用下来 给大家从基本功能 使用体验和不同场景下的应用这几个方面 总结出了海报制作软件哪个好用 接下来就让我为你详
  • 电脑操作系统的发展史:从初级到高级的演变

    自电脑诞生以来 操作系统作为其重要组成部分 不断推动着电脑技术的进步与发展 本文将带您回顾电脑操作系统的发展历程 探究其在不同阶段的特点与影响 一 早期操作系统 真空管与批处理 在电脑诞生初期 真空管技术占主导地位 此时的操作系统尚未形成完
  • 人工智能 AI 如何让我们的生活更加便利

    每个人都可以从新技术中获益 一想到工作或生活更为便利 简捷且拥有更多空余时间 谁会不为之高兴呢 借助人工智能 每天能够多一些空余时间 或丰富自己的业余生活 为培养日常兴趣爱好增添一点便利 从电子阅读器到智能家居 再到植物识别应用和智能室内花
  • 【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 有 无策略奖励 2 2 训练结果1
  • 短信系统搭建主要因素|网页短信平台开发源码

    短信系统搭建主要因素 网页短信平台开发源码 随着移动互联网的快速发展 短信系统已成为企业和个人进行信息传递的重要工具 建立一个高效可靠的短信系统对于企业来说非常重要 下面我们将介绍一些影响短信系统搭建的主要因素 1 平台选择 在搭建短信系统
  • 2024最新MathType7.4.10中文版下载安装激活教程

    MathType 是一款专业的数学公式编辑工具 提供交互式编辑器 让你在编辑数学试卷 书籍 报刊 论文 幻灯演示等文档轻松输入各种复杂的数学公式和符号 1 本次讲解mathtype 7版本的安装步骤 MathType2024 Win 安装包
  • CorelDRAW2024官方中文版重磅发布更新

    35年专注于矢量设计始于1988年并不断推陈出新 致力为全球设计工作者提供更高效的设计工具 CorelDRAW 滋养并见证了一代设计师的成长 在最短的时间内交付作品 CorelDRAW的智能高效会让你一见钟情 CorelDRAW 全称 Co
  • 如何正确下载激活NTFS for Mac2024最新版本?

    对于产品来说 更新换代是常有的事 很多软件在用户使用过后 会根据用户的使用需求以及一些客观需求 将软件进行改进 这样一个新的版本的软件就会出现 用户需要将软件进行更新才能享受最新的功能 使用更加完善的软件 所以我们一定要学会如何将软件进行更
  • 蒙特卡洛在发电系统中的应用(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
  • 如何正确使用RC滤波网络

    众所周知 最有效的滤波电路应靠近噪声源放置 滤波的作用是对噪声电流进行及时有效地阻止和转移 实际设计中 工程师经常使用高的串联阻抗 电阻 电感和铁氧体 阻止电流 并使用低的并联阻抗 电容 转移电流 通常情况下 我们期望滤波器可以对噪声信号衰
  • AI新年头像模板在哪找?告别单调头像的工具分享

    农历新年到啦 今年的春节假期你有没有弄一些氛围装饰呀 除了每年都有的对联 福字等 经典皮肤 现在也流行起给自己的账号营造一些过年的感觉啦 说到这个 很多人第一反应就是给自己换个新年头像 限定皮肤 不过头像要怎么营造新年的感觉呢 其实用AI工
  • 自动驾驶离不开的仿真!Carla-Autoware联合仿真全栈教程

    随着自动驾驶技术的不断发展 研发技术人员开始面对一系列复杂挑战 特别是在确保系统安全性 处理复杂交通场景以及优化算法性能等方面 这些挑战中 尤其突出的是所谓的 长尾问题 即那些在实际道路测试中难以遇到的罕见或异常驾驶情况 这些问题暴露了实车
  • 【安全】网络安全态势感知

    文章目录 一 态势感知简介 1 概念 2 形象举例 3 应具备的能力 二 为什么要态势感知 为什么网络安全态势感知很重要 三 态势感知系统的功能 四 如何评估态势感知的建设结果 五 什么是态势感知的三个层级 四 业界的态势感知产品 1 安全

随机推荐

  • 异步编程(async 和 await)

    1 概念 异步编程是一项关键技术 可以直接处理多个核心上的I O阻塞和并发操作 2 使用场景 对于存在IO密集型 例如从网路请求数据 访问数据库和写入到文件系统 和CPU密集型 例如大量的计算 的任务可以选择异步编程 3 异步编程针对于IO
  • Linux下安装操作Git远程仓库与本地仓库同步的教程

    主机操作系统 Centos 6 7 安装配置 GIT邮箱 leiyuxing205 gmail com 一GIT简介 Git是一个开源的分布式版本控制系统 用以有效 高速的处理从很小到非常大的项目版本管理 Git 是 Linus Torva
  • 通过linux定时任务删除es日志索引

    能过linux定时任务删除es日志索引 项目用上了elk 产生的日志索引要定时 其一个方法 通过linux定时任务 调用es接口删除索引 bin bash 删除ELK30天前的日志 计算索引名称包含的日期 比如这里是 Y m d 2023
  • 深入浅出统计学(十四)卡方分布

    基本概念 问题 总结 卡方检验步骤 自由度计算
  • 百度前端实习生面试经历

    说实话 这应该是自己第一次认真准备 又很在意的面试 非常感谢学长的内推 昨天从下午三点一直到晚上七点经历了三场面试 每场大约半小时左右 前两场技术面 最后一面是高级项目经理的 软实力 面试 因为我没做过服务器端 所以基本没有涉及服务器端的知
  • c++实现简单分数统计

    include
  • CHAR与VARCHAR字段类型的适用场景

    在知乎看到的 特意做个笔记 CHAR CHAR适合存储很短的字符串 或者所有值都接近同一个长度 例如 CHAR非常适合存储密码的MD5值 因为这是一个定长的值 对于经常变更的数据 CHAR也比VARCHAR更好 因为定长的CHAR类型不容易
  • 如何制作一个百货小程序

    在这个数字化时代 小程序已成为各行各业的必备工具 其中 百货小程序因其便捷性和多功能性 越来越受到人们的青睐 那么 如何制作一个百货小程序呢 下面 我们就详细介绍一下无需编写代码的步骤 一 进入后台管理 首先 您需要注册并登录 乔拓云 操作
  • STM32+ESP8266连接电脑Qt网络上位机——准备工作

    准备工作 先使用手机和电脑实现局域网 保证电脑的上位机和手机APP 实现服务器和客户机无障碍通信 文章目录 一 准备工作 二 手机作为服务器 三 电脑作为服务器 一 准备工作 工具 手机端 NeTorch 网络调试工具 电脑端 野火网络调试
  • Maven设置网络中央仓库的镜像

    使用国内阿里云的镜像进行设置 在Maven的安装路径下的conf下的settings xml文件中进行配置 将下面的代码复制到settings py文件中
  • 三层交换机及VLAN(入门)

    文章目录 三层交换机及VLAN VLAN入门 1 数据链路层的基础知识 1 1什么是数据链路层 1 2数据链路层的基本功能 2 以太网基本定义 2 1 MAC地址简介 2 2 以太网数据帧的格式 3 交换机的工作原理 3 1交换机的作用 3
  • go语言中的if语句

    go语言中的if语句 go语言中的if语句和其他语言中的类似 都是根据给定的条件表达式运算结果来 判断执行流程 go语言if语句语法 if 布尔表达式 在布尔表达式为 true 时执行 注意 在go语言中 布尔表达式不用使用括号 go语言i
  • WPF+EF Core入门:制作可视化窗体软件

    原因 最近要面试一家公司 公司有对WPF架构的要求 然后就开始自学了 功能描述 加载所有学生信息 名字筛选学生信息 重置筛选 新增学生信息 修改学生信息 删除学生信息 窗体样式 操作步骤 一 引用文件包 进去管理NuGet程序包 引入EF
  • 使用centos7搭建syslog和loganalyzer日志服务器

    主要步骤是网上根据博客来安装及排错调试 这两张帖子都写的很详细 http www ifzhai com article php id 9 https blog csdn net qq 33157780 article details 506
  • java String类(超详细,含常用方法、面试题,内存图,案例)

    String类 一 String类的特点 二 String 类的常见构造方法 三 String常见的面试题 1 字符串常量池 2 String s abc 与String s new String abc 区别 3 字符拼接 4 常量优化机
  • pgsql数据库存储过程中,批量操作数据

    82 数据库存储过程中 批量操作数据 DECLARE record row record 定义一个名为 record row 的记录类型变量 BEGIN FOR record row IN SELECT name age id card F
  • Python制作宝石消消乐小游戏

    开发工具 Python版本 3 6 4 相关模块 pygame模块 以及一些Python自带的模块 相关文件 关注公众号 Python学习指南 回复 消消乐 即可获取 环境搭建 安装Python并添加到环境变量 pip安装需要的相关模块即可
  • Unity简单几行代码让玩家水平移动更丝滑真实

    可以先来看看基础的移动代码 接收玩家的输入 然后赋予刚体速度 但是这种写法存在几个问题 下面一一纠正 首先 如果直接改变刚体的速度 那么可能会出现穿墙的问题 而且没有一种从速度0到缓慢加速的过程 那样较为机械且不真实 所以可以用物理模拟的方
  • Leetcode 448.找到所有数组中消失的数字

    448 找到所有数组中消失的数字 力扣 LeetCode 题目描述 给你一个含 n 个整数的数组 nums 其中 nums i 在区间 1 n 内 请你找出所有在 1 n 范围 但没有出现在 nums 中的数字 并以数组的形式返回结果 示例
  • openAI api 生产最佳实践

    生产最佳实践 本指南提供了一套全面的最佳实践 帮助您从原型过渡到生产 无论您是经验丰富的机器学习工程师还是最近的爱好者 本指南都应为您提供将平台成功投入生产环境所需的工具 从确保访问我们的API到设计能够处理高流量的健壮架构 使用本指南可帮