如何用Kimi整理文档中的内容

如何用Kimi整理文档中的内容

任务说明

有一个PPT,是之前从百度文库中做的截图,尝试使用Kimi将这样的文档进行一下整理。

初次尝试直接使用PPT格式,效果读取的不好。后面改为另存为PDF格式,整体效果有明显改善。程序成功从PDF中提取了多个图片中的内容,并将PPT中的信息,总结出一段文档后输出。测试结果见下面的程序输出。

测试用的文档,可从下面的链接中获取:

链接:https://pan.baidu.com/s/16MLreWmUsW46HiZIVOgAZA 
提取码:1111

源代码

from openai import OpenAI
from pathlib import Path


client = OpenAI(
    api_key="your api key",
    base_url="https://api.moonshot.cn/v1",
)

file = client.files.create(file=Path("d:\\遗传算法.pdf"), purpose="file-extract")

file_content = client.files.content(file_id=file.id).text

print(file_content)

messages = [
    {
        "role": "system",
        "content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。"
    },
    {
        "role": "system",
        "content": file_content
    },
    {
        "role": "user",
        "content": "请将上面文档中的内容,整理成一个算法的说明文档"
    }
]

completion = client.chat.completions.create(
    model="moonshot-v1-32k",
    messages=messages,
    temperature=0.1,
)

result = completion.choices[0].message.content

print(completion)
print("*" * 30)
print(result)

输出结果

D:\Anaconda3\envs\cmcc_demo\python.exe E:/Work/Code/cmcc_demo/kimi_demo_read_file.py
{"content":"遗传算法的简单应用\n求解高次函数在区间上的最大值\n@ppskingdom\nBai问题描述\n求解函数f(×)=×+10*sin(5*x)+7*cos(4x)在区问[0,9]的最大值。\n@ppskingdom\nBaiaxm遗传算法特性\n遵循『适者生存』『优胜方汰』的原则\n是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法。\n遗传算法模拟一个人工种群的进化过程,通过选择(Selection)、交叉(Crossover)\n以及变异(Mutation)等机制,在每次选代中都保留一组候选个体,重复此过程,\n种群经过若干代进化后,理想情况下其适应度达到***近似最优***的状态。\n自从遗传算法被提出以来,其得到了广泛的应用,特别是在函数优化,生产调度、\n模式识别、神经网络、自适应控制等领域,遗传算法发挥了很大的作用,提高了\n一些问题求解的效率。\n@ppskingdom\nBaiaxm遗传算法组成(一)\n编码-\u003e创造染色体\n个体-\u003e种群\n适应度函数\n遗传算子\n送择\n交叉\n@ppskingdom\nBaia遗传算法组成(二)\n运行参数\n是否选择精英摄作\n种鲜大小\n染色体长度\n最大选代次数\n交叉概率\n异概率\n@ppskingdom\nBaia编码与解码\n实现遗传算法的第一步就是明确对求解问题的编码和解码方式。\n对于函数优化问题,一般有两种编码方式,各具优缺点\n实数编码:直接用实数表示基因,容易理解且不需要解码过程,但容易过早收敛,从\n而陷入局部最优\n二进制编码:稳定性高,种群多样性大,但需要的存储空问大,需要解码且难以理解\n对于求解函数录大值问题,可选择二进制编码。\n@ppskingdom\nBaia文编码\n解空间\n编码空间\n解码\n@ppskingdom\nBaitax编码的细节\n目标函数f(x)=X+10sin(5x)+7cos(4x),xE[0,9]\n假如设定求解的精度为小数点后4位,可以将X的解空问划分为(9-\n0)×(1e+4)=90000个等分。\n2°16\u003c90000\u003c2°17,需要17位二进制数来表示这些解。\n一个解的编码就是一个17位的二进制串。\n@ppskingdom\nBaia文生成染色体\n一开始,这些二进制串是随机生成的。\n一个这样的二进制串代表一条染色体串,这里染色体串的长度为17。\n@ppskingdom\nBaia文染色体的解码\n对于本问题,我们可以采用以下公式来解码:\nx=0+decimal(chromosome)x(9-0)/(2*17-1)\n一般化解码公式:\nf(x),xE[lower_bound,upper_bound]x=lower_bound +\ndecimal(chromosome)x(upper_bound-lower_bound)/(2*chromosome_size-1)\nlower bound:函数定义域的下限\nupper_bound:函数定义域的上限\nchromosome_size:染色体的长度\n@ppskingdom\nBaiaxm个体与种群\n『色体』表达了某种特征,这种特征的载体,称为「个体』。\n对于本次实验所要解决的一元函数录最大值求解问题,个体可以用上一节构造的染\n色体表示,一个个体里有一条染色体。\n许多这样的个体组成了一个种群,其含义是一个一维点集(轴上0,9的线段)。\n@ppskingdom\nBai文适应度函数\n遗传算法中,一个个体(解)的好坏用适应度函数值来评价,在本问题中,(X)就\n是适应度函数。\n适应度函数值越大,解的质量越高。\n适应度函数是遗传算法进化的驱动力,也是进行自然选择的唯一标准,宅的设计\n应结合求解问题本身的要求而定。\n@ppskingdom\nBaiaxe遗传算子\n我们希望有这样一个种群,宅所包含的个体所对应的函数值都很接近于(X)在\n0,9上的录最大值,但是这个种群一开始可能不那么优秀,因为个体的染色体串是\n随机生成的。\n如何让种群变得优秀呢?\n不新的进化。\n每一次进化都尽可能保留种群中的优秀个体,淘汰掉不理想的个体,并且在优秀\n个体之问进行染色体交又,有些个体还可能出现变寻。\n种群的每一次进化,都会产生一个最优个体。种群所有世代的最优个体,可能就\n是函数f(×)录最大值对应的定义域中的点。\n如果种群无休止地进化,那总能找到最好的解。但实际上,我们的时问有限,通\n常在得到一个看上去不错的解时,便终止了进化。\n@ppskingdom\nBaiax赋予种群进化的能力\n选择\n交叉\n变异\n@ppskingdom\nBaia选择(selection)\n选择操作是从前代种群中选择**多对***较优个体,一对较优个体称之为一对父母,\n让父母们将它们的基因传递到下一代,直到下一代个体数量达到种群数量上限\n在选择操作前,将种群中个体按照适应度从小到大进行排列\n采用轮盘赌选择方法(当然还有很多别的选择方法),各个个体被选中的概率与\n其适应度函数值大小成正比\n轮盘赌选择方法具有随机性,在选择的过程中可能会丢掉较好的个体,所以可以\n使用精英机制,将前代最优个体直接选择\n@ppskingdom\nBaia交叉(cross)\n两个待交叉的不同的染色体(父母)根据交叉概率(cross_rate)按禁种方式交换其部\n分基因\n采用单点交叉法,也可以使用其他交叉方法\n@ppskingdom\nBai文变异(mutation)\n色体按照变异概率(mutate_rate)进行染色体的变异\n用单点变异法,也可以使用其他变异方法\n@ppskingdom\nBaia文交叉概率和变异概率\n一般来说,交叉概率(cross_rate)比较大,变异概率(mutate_rate)极低。像求解\n函数录大值这类问题,我设置的交叉概率(cross_rate)是0.6,变异概率\n(mutate_rate)是0.01。\n因为遗传算法相信2条优秀的父母染色体交叉更有可能产生优秀的后代,而变异\n的话产生优秀后代的可能性极低,不过也有存在可能一下就变异出非常优秀的后\n代。这也是符合自然界生物进化的特征的。\n@ppskingdom\nBaia遗传算法流程\n拍入,种群大小,染色停长度,是需英选择,交叉痛率,变异概不,停止规则\n初胎化种群\n+\n计算个体适应度\n对个停适应度大小排序\n选择操作\n交叉摄作\n变异瑞作\n满足停止规则?\n客止\n@ppskingdom\nBaity=10*sin(5*×) +7*abs(×-5)+10\n120\n100\n50\n10.0\n7.5\n5.0\n2.5\n0.0\n2.5\n5.0\n7.5\n10.0\nX","file_type":"application/pdf","filename":"遗传算法.pdf","title":"","type":"file"}
ChatCompletion(id='chatcmpl-5059e44c4c3f48f3ac4951fa797a4bba', choices=[Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='遗传算法求解高次函数最大值问题说明文档\n\n1. 问题描述\n目标是求解函数 f(x) = x + 10*sin(5*x) + 7*cos(4x) 在区间 [0,9] 上的最大值。\n\n2. 遗传算法特性\n遗传算法是一种模拟生物进化过程的随机化搜索算法,遵循“适者生存”和“优胜劣汰”的原则。它通过选择、交叉和变异等机制,逐步优化种群,以达到近似最优解。\n\n3. 遗传算法组成\n- 编码:创建染色体,用以表示个体的基因。\n- 个体:种群中的一个成员,含有一条染色体。\n- 适应度函数:评价个体(解)质量的函数。\n- 遗传算子:包括选择、交叉和变异操作。\n\n4. 运行参数\n- 是否选择精英策略。\n- 种群大小:种群中个体的数量。\n- 染色体长度:表示解的二进制串的长度。\n- 最大选代次数:算法迭代的最大次数。\n- 交叉概率:染色体交叉的概率。\n- 变异概率:染色体变异的概率。\n\n5. 编码与解码\n- 实数编码:直接用实数表示基因,易于理解,但可能导致过早收敛。\n- 二进制编码:稳定性高,种群多样性大,但需要解码过程。\n\n6. 编码细节\n对于本问题,解空间被划分为 90000 个等分,需要 17 位二进制数来表示。染色体即为一个 17 位的二进制串。\n\n7. 染色体生成\n初始染色体是随机生成的二进制串。\n\n8. 染色体解码\n解码公式为:\nx = 0 + (二进制串的十进制表示) * (9 - 0) / (2^17 - 1)\n\n9. 个体与种群\n个体是染色体的载体,种群是由多个个体组成的集合。\n\n10. 适应度函数\n适应度函数值越大,解的质量越高。在本问题中,适应度函数即为 f(x)。\n\n11. 遗传算子\n- 选择(Selection):根据适应度选择优秀个体作为父母。\n- 交叉(Crossover):父母染色体按一定概率交换基因。\n- 变异(Mutation):染色体按一定概率发生变异。\n\n12. 选择、交叉和变异操作\n- 选择操作采用轮盘赌方法,可能结合精英策略。\n- 交叉操作使用单点交叉法或其他方法。\n- 变异操作使用单点变异法或其他方法。\n\n13. 交叉和变异概率\n交叉概率通常较大,变异概率较低。例如,本问题中交叉概率设为 0.6,变异概率设为 0.01。\n\n14. 遗传算法流程\n- 初始化种群。\n- 计算个体适应度。\n- 根据适应度排序。\n- 执行选择、交叉和变异操作。\n- 检查是否满足停止规则,如满足则停止,否则继续迭代。\n\n通过以上步骤,遗传算法能够在有限的迭代次数内找到一个近似最优解。', role='assistant', function_call=None, tool_calls=None))], created=785540, model='moonshot-v1-32k', object='chat.completion', system_fingerprint=None, usage=CompletionUsage(completion_tokens=662, prompt_tokens=1734, total_tokens=2396))
******************************
遗传算法求解高次函数最大值问题说明文档

1. 问题描述
目标是求解函数 f(x) = x + 10*sin(5*x) + 7*cos(4x) 在区间 [0,9] 上的最大值。

2. 遗传算法特性
遗传算法是一种模拟生物进化过程的随机化搜索算法,遵循“适者生存”和“优胜劣汰”的原则。它通过选择、交叉和变异等机制,逐步优化种群,以达到近似最优解。

3. 遗传算法组成
- 编码:创建染色体,用以表示个体的基因。
- 个体:种群中的一个成员,含有一条染色体。
- 适应度函数:评价个体(解)质量的函数。
- 遗传算子:包括选择、交叉和变异操作。

4. 运行参数
- 是否选择精英策略。
- 种群大小:种群中个体的数量。
- 染色体长度:表示解的二进制串的长度。
- 最大选代次数:算法迭代的最大次数。
- 交叉概率:染色体交叉的概率。
- 变异概率:染色体变异的概率。

5. 编码与解码
- 实数编码:直接用实数表示基因,易于理解,但可能导致过早收敛。
- 二进制编码:稳定性高,种群多样性大,但需要解码过程。

6. 编码细节
对于本问题,解空间被划分为 90000 个等分,需要 17 位二进制数来表示。染色体即为一个 17 位的二进制串。

7. 染色体生成
初始染色体是随机生成的二进制串。

8. 染色体解码
解码公式为:
x = 0 + (二进制串的十进制表示) * (9 - 0) / (2^17 - 1)

9. 个体与种群
个体是染色体的载体,种群是由多个个体组成的集合。

10. 适应度函数
适应度函数值越大,解的质量越高。在本问题中,适应度函数即为 f(x)。

11. 遗传算子
- 选择(Selection):根据适应度选择优秀个体作为父母。
- 交叉(Crossover):父母染色体按一定概率交换基因。
- 变异(Mutation):染色体按一定概率发生变异。

12. 选择、交叉和变异操作
- 选择操作采用轮盘赌方法,可能结合精英策略。
- 交叉操作使用单点交叉法或其他方法。
- 变异操作使用单点变异法或其他方法。

13. 交叉和变异概率
交叉概率通常较大,变异概率较低。例如,本问题中交叉概率设为 0.6,变异概率设为 0.01。

14. 遗传算法流程
- 初始化种群。
- 计算个体适应度。
- 根据适应度排序。
- 执行选择、交叉和变异操作。
- 检查是否满足停止规则,如满足则停止,否则继续迭代。

通过以上步骤,遗传算法能够在有限的迭代次数内找到一个近似最优解。

Process finished with exit code 0

<think>好的,我现在需要帮助用户了解如何在Kimi平台或工具中使用自定义模板。根据用户提供的引用内容,我需要仔细分析已有的信息,然后整理出一个清晰的步骤指南。 首先,查看用户提供的引用内容。引用[1]提到Kimi提供了多种模板,用户可以根据场景、风格和颜色选择模板。引用[2]说明了Kimi的制作流程包括输入内容、生成、选择模板和编辑优化。引用[3]和[4]更多是关于Kimi+的功能和API集成,可能暂时不相关。因此,主要参考引用[1]和[2]。 接下来,用户询问的是“自定义模板”的使用方法。但现有的引用中没有直接提到“自定义模板”,只提到了选择现有模板。可能需要推测,或者指出当前可能不支持完全自定义模板,但可以通过选择模板后进行编辑优化来间接实现自定义。 根据引用[2]的步骤,用户在选择模板后可以编辑优化,这可能包括修改颜色、字体、布局等,从而达到类似自定义的效果。因此,可能需要将步骤分为选择现有模板和后续编辑优化部分,并建议用户通过这些步骤来实现自定义模板的需求。 另外,需要检查是否有遗漏的信息。引用中没有提到上传自己的模板文件,因此可能Kimi目前不支持用户上传自定义模板,而是提供丰富的预设模板供选择和调整。因此,回答需要明确说明这一点,避免误导用户。 最后,组织回答结构:先说明当前是否支持自定义模板,然后详细步骤如何选择和调整模板,最后给出相关建议或替代方法。</think>以下是关于在Kimi平台中使用模板的详细说明: ### Kimi平台模板使用方法 1. **进入模板选择界面** 创建PPT时,点击「模板选择」按钮进入模板库页面[^1]。系统提供**商务、教育、科技、创意**等多种分类模板,支持按场景、风格、颜色进行筛选。 2. **模板选择策略** - **按场景匹配**:例如学术报告优先选择简洁学术风模板,产品发布会适合动态视觉效果强的模板 - **按元素自定义**:选定基础模板后,可通过编辑功能调整配色方案(如将冷色调改为企业VI色)、替换字体(如标题改用思源黑体)、增减动画效果[^2] 3. **实现自定义效果的替代方案** Kimi目前暂不支持直接上传自定义模板文件,但可通过以下方式实现高度定制化: - **修改母版布局**:在编辑模式下调整页眉页脚位置、LOGO水印等重复元素 - **组件替换**:保留模板交互逻辑(如时间轴动画),替换其中的图标、图表数据源 - **样式继承**:复制某页设计风格(如配色+字体组合),批量应用到其他页面 ```python # 示例:通过API调用模板参数(需参考开发文档[^4]) def apply_template(template_id): api_endpoint = "https://api.moonshot.cn/v1/templates/apply" payload = { "presentation_id": "current_ppt_id", "template_id": template_id, "custom_styles": { "primary_color": "#2A5CAA", "font_family": "Microsoft YaHei" } } response = requests.post(api_endpoint, json=payload) return response.status_code ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值