【AI编程实践记录】copilot仅三次提问完成AI小助手软件雏形

vscode的copilot,目前最流行的AI编程之一,最新版vscode都已自带。下面是一个使用记录,记录如何用三次提问完成一个AI助手小工具。

第一次提问:

给copilot发送提示词:

我想编写一个ai辅助工具,有gui,可以与用户交互(pyside6)。首先需要用户输入自己的url、api与模型名称。然后界面上有不同按钮,目前先加入中英翻译专家这一个按钮,需要用户键入USER提示词,然后与已经内置的SYSTEM 提示词一起发送,并实时在ui界面上显示响应,用户可以自由复制结果。

api参考代码如下:from openai import OpenAI

client = OpenAI( base_url="https://api.deepseek.com/", api_key="<YOUR_API_KEY>" )

completion = client.chat.completions.create( model="deepseek-chat", messages=[ { "role": "system", "content": "你是一个中英文翻译专家,将用户输入的中文翻译成英文,或将用户输入的英文翻译成中文。对于非中文内容,它将提供中文翻译结果。用户可以向助手发送需要翻译的内容,助手会回答相应的翻译结果,并确保符合中文语言习惯,你可以调整语气和风格,并考虑到某些词语的文化内涵和地区差异。同时作为翻译家,需将原文翻译成具有信达雅标准的译文。"信" 即忠实于原文的内容与意图;"达" 意味着译文应通顺易懂,表达清晰;"雅" 则追求译文的文化审美和语言的优美。目标是创作出既忠于原作精神,又符合目标语言文化和读者审美的翻译。" }, { "role": "user", "content": "牛顿第一定律:任何一个物体总是保持静止状态或者匀速直线运动状态,直到有作用在它上面的外力迫使它改变这种状态为止。 如果作用在物体上的合力为零,则物体保持匀速直线运动。 即物体的速度保持不变且加速度为零。" } ] )

print(completion.choices[0].message.content)。

注意将所有生成的文件合理分配至不同文件夹,比如gui、utils等等,同时尽可能减少不同.py文件直接的粘连,每个.py文件只实现一个功能,并在文件开头列出功能介绍和输入输出。最后在main.py里面只保留一个接口,同时编写readme文档与requirements文档。

可以看到,copilot一口气生成了12个文件,并生成了对应的文件夹。每个文件夹还有__init__.py文件,是非常规范的代码写作。

再看一眼copilot编写的readme文档,可以看到还是不错的。

这是ai写的main.py文件,作为程序入口

"""
DeepSeek Tool - AI辅助工具

一个基于DeepSeek API的AI辅助工具,提供中英翻译等功能。
"""

import sys
from PySide6.QtWidgets import QApplication
from gui.main_window import MainWindow


def main():
    """
    应用程序入口点
    """
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec())


if __name__ == "__main__":
    main()

随便点开一个文件,比如api_client.py,可以看到文件不仅包含详细注释,还有面向对象、错误处理。

"""
API客户端模块

处理与DeepSeek API的通信。
"""

from openai import OpenAI


class APIClient:
    """
    DeepSeek API客户端

    处理与DeepSeek API的通信,发送请求并处理响应。
    """

    def __init__(self, api_info):
        """
        初始化API客户端

        参数:
            api_info (dict): 包含API URL, Key和模型名称的字典
        """
        self.update_api_info(api_info)

    def update_api_info(self, api_info):
        """
        更新API信息

        参数:
            api_info (dict): 包含API URL, Key和模型名称的字典
        """
        self.base_url = api_info.get("url", "https://api.deepseek.com/")
        self.api_key = api_info.get("api_key", "")
        self.model = api_info.get("model", "deepseek-chat")

        # 初始化OpenAI客户端
        self.client = OpenAI(base_url=self.base_url, api_key=self.api_key)

    def send_request(self, system_prompt, user_prompt):
        """
        发送请求到DeepSeek API

        参数:
            system_prompt (str): 系统提示词
            user_prompt (str): 用户提示词

        返回:
            str: API响应的内容
        """
        if not self.api_key:
            raise ValueError("API Key不能为空")

        try:
            completion = self.client.chat.completions.create(
                model=self.model,
                messages=[
                    {"role": "system", "content": system_prompt},
                    {"role": "user", "content": user_prompt},
                ],
            )

            return completion.choices[0].message.content
        except Exception as e:
            raise Exception(f"API请求失败: {str(e)}")

下面我们安装一下环境

conda create -n ai_tool python=3.10 -y

conda activate ai_tool

pip install -r requirements.txt

点击运行。可以看到,界面有点丑,不过没事,之后会让ai进行美化。先填写自己的api,尝试一下功能。

随便输入一段文字。我们可以看到,功能完全正常!仅仅提问一次就可以完成到这个程度。

第二次提问:

下面我们进行第二次提问,提示词如下:

添加如下功能:(1).模型提示词生成,系统提示词如下:你是一位大模型提示词生成专家,请根据用户的需求编写一个智能助手的提示词,来指导大模型进行内容生成,要求:

1. 以 Markdown 格式输出

2. 贴合用户需求,描述智能助手的定位、能力、知识储备

3. 提示词应清晰、精确、易于理解,在保持质量的同时,尽可能简洁

4. 只输出提示词,不要输出多余解释。(2)宣传标语生成,系统提示词:你是一个宣传标语专家,请根据用户需求设计一个独具创意且引人注目的宣传标语,需结合该产品/活动的核心价值和特点,同时融入新颖的表达方式或视角。请确保标语能够激发潜在客户的兴趣,并能留下深刻印象,可以考虑采用比喻、双关或其他修辞手法来增强语言的表现力。标语应简洁明了,需要朗朗上口,易于理解和记忆,一定要押韵,不要太过书面化。只输出宣传标语,不用解释。(3)文案大纲生成,系统提示词:你是一位文本大纲生成专家,擅长根据用户的需求创建一个有条理且易于扩展成完整文章的大纲,你拥有强大的主题分析能力,能准确提取关键信息和核心要点。具备丰富的文案写作知识储备,熟悉各种文体和题材的文案大纲构建方法。可根据不同的主题需求,如商业文案、文学创作、学术论文等,生成具有针对性、逻辑性和条理性的文案大纲,并且能确保大纲结构合理、逻辑通顺。该大纲应该包含以下部分:

引言:介绍主题背景,阐述撰写目的,并吸引读者兴趣。

主体部分:第一段落:详细说明第一个关键点或论据,支持观点并引用相关数据或案例。

第二段落:深入探讨第二个重点,继续论证或展开叙述,保持内容的连贯性和深度。

第三段落:如果有必要,进一步讨论其他重要方面,或者提供不同的视角和证据。

结论:总结所有要点,重申主要观点,并给出有力的结尾陈述,可以是呼吁行动、提出展望或其他形式的收尾。

创意性标题:为文章构思一个引人注目的标题,确保它既反映了文章的核心内容又能激发读者的好奇心。(4)ppt生成,提示词:角色:你是一名专业的PPT内容架构师,擅长将复杂信息转化为逻辑清晰、视觉友好的演示框架。

任务:根据用户输入的需求,生成可直接用于PPT制作的Markdown格式大纲和内容,包含标题结构、核心观点、数据标注和设计建议。

输出规则:

始终以Markdown格式输出,层级不超过3级(#、##、###)

每页需包含:

核心论点(加粗标注)

支持内容(分点陈述,含数据/案例建议)

设计提示(以> [!NOTE]标注,如图表类型、视觉关键词)

根据用户需求自动适配以下模块:

痛点分析页 → 需包含「问题分级表」

解决方案页 → 需提供「流程图示建议」

数据展示页 → 推荐图表类型(柱状图/折线图等)。注意:请给每个功能添加一句话注释,从而让用户能够快速上手,比如ppt助手可以这样写:用户输入ppt需求,然后将输出内容粘贴给kimi的PPT助手,即可生成精美PPT。此外,注意将所有生成的文件合理分配至不同文件夹,比如gui、utils等等,同时尽可能减少不同.py文件直接的粘连,每个.py文件只实现一个功能,并在文件开头列出功能介绍和输入输出。最后在main.py里面只保留一个接口,同时修改readme文档与requirements文档。

可以看到,ai已经写了20个文件了。

readme文档同步更新。

点击运行。这是现在的ui界面:

我们尝试一下PPT生成。随便找一个主题,以ar为例,粘上我之前写的调研报告,成功生成了内容。

去kimi,找到PPT助手,复制粘贴过去:

选择模板

生成完毕

第三次提问:

下面开始我们的第三次提问,主要针对ui美化与细微bug修复。提示词如下:

1.新建普通正常对话功能,无指定提示词。2.没有能够在ui界面上成功流式实时输出api调用的结果,请修复。3.请新建qss文件,美化ui界面,使其变得耐看且现代化,让打开软件的人眼前一亮。注意将所有生成的文件合理分配至不同文件夹,比如gui、utils等等,同时尽可能减少不同.py文件直接的粘连,每个.py文件只实现一个功能,并在文件开头列出功能介绍和输入输出。最后在main.py里面只保留一个接口,同时修改readme文档与requirements文档。

运行一下,可以正常使用了,且提供了两种样式供切换,能够流式输出了。仅仅提问3次,软件雏形已经完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值