开启左侧

Cursor + Deepseek AI 场景实战(附上残缺源码)

[复制链接]
在线会员 6KjHg7gd 发表于 2025-6-13 02:21:49 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题 |快速收录

字数 1679,浏览约莫需 15 分钟

现在 AI 横止时期,念必各人皆听过 AI 主动化化撰写文章吧。可以有使用扣子、GPT、DeepSeek等等。来日诰日那介绍怎样使用 Cursor + DeepSeek API 完毕文章主动编辑,并送上可施行源码。而且干了避免被识别成谁人!
恳求自己的 Deepseek API

起首您要来花个一包辣条的米(果然很知己,自己20米用了半年多借么用完)退买 DeepSeek API。

加入民网:https://www.deepseek.com/

Cursor + Deepseek AI 场景真战(附上残破源码)w2.jpg

Cursor + Deepseek AI 场景真战(附上残破源码)w3.jpg

而后创立 Key 而且复造到年夜模子交心动作进参。

Cursor + Deepseek AI 场景真战(附上残破源码)w4.jpg
Deepseek年夜模子交心文档,能够简朴瞅瞅。

Cursor + Deepseek AI 场景真战(附上残破源码)w5.jpg

Cursor + Deepseek AI 场景真战(附上残破源码)w6.jpg

ok,那里皆是动作理解。究竟结果那些您皆不消写。AI 会主动助您写。

交下来下载 Cursor(付费、结果果然没有错,各人该当明白如何利剑嫖,那里没有报告) 战 Trae(海内免费版,结果一般)。

Cursor 民网:https://www.cursor.com/

Cursor + Deepseek AI 场景真战(附上残破源码)w7.jpg

Trae 民网:https://www.trae.com.cn/

Cursor + Deepseek AI 场景真战(附上残破源码)w8.jpg

而后翻开 Cursor -> Open Project创立 名目,Cursor 战 VSCode 一模一样。究竟结果是启源的,Cursor 战 IDE 互通能够根据 SwitchToCursor 插件。

Cursor + Deepseek AI 场景真战(附上残破源码)w9.jpg

交下来即是十分简朴的工作了,猖獗抽卡输出 AI 指令。让它辅佐咱们完毕指令。那里以主动 AI 撰写 CXXN 文章为例。

Cursor + Deepseek AI 场景真战(附上残破源码)w10.jpg
如何让AI指令越发精确,您的描绘必然要精确。举个例子: 要让AI把天生的题目搁到上面截图职位处。您能够自己先定位到精确元艳职位。而后让AI来把值回写到该处。如许能够年夜年夜进步 AI 精确度。

Cursor + Deepseek AI 场景真战(附上残破源码)w11.jpg

那里倡议没有要用 Claude 来天生文章,究竟结果它没有是干那个用的,能够用上面 Deepseek 模子来天生文章,结果很棒!
上面揭多少弛自己正在抽卡 AI 指令让它主动助尔写 CXXN 文章历程。

Cursor + Deepseek AI 场景真战(附上残破源码)w12.jpg

Cursor + Deepseek AI 场景真战(附上残破源码)w13.jpg

Cursor + Deepseek AI 场景真战(附上残破源码)w14.jpg

Cursor + Deepseek AI 场景真战(附上残破源码)w15.jpg

Cursor + Deepseek AI 场景真战(附上残破源码)w16.jpg

根本提醒词汇历程归纳为:
尔已经创立了一个根本的主动化东西去辅佐您正在CSDN上主动编辑战保留文章。那个东西的主要功用包罗:
主动登录CSDN
主动创立新文章
主动挖写文章题目战实质
主动保留初稿
去往返回花了快要 30 分钟阁下。即是您念让它干吗,间接输出,报错,也间接让它主动处置,终极让它运行没有报错就能够。
AI 主动撰写 CXXN 文章

上面是 CXXN 主动撰写文章的源码,设置佳自己的设置便可运行!
CSDN_USERNAME= CXXN 账号
CSDN_PASSWORD= CXXN 暗码
OPENAI_API_KEY= 您的 Deepseek KEY# AI提醒词汇设置
AI_PROMPTS = {
    "system_prompt": "您是百万粉丝Java手艺专主,善于写搞货手艺,而且深刻易懂具体文章",
    "user_prompt_template": """请助尔写一篇对于{topic}的手艺文章,请求:
1.深刻 易懂,小师长教师均可以听懂,实质多,常识面具体
二、文章必须要少,必需超越 3000汉字以上
三、用一样平常交换的语调写
4. 使用emoji心情增加可读性"""
}

# API设置
API_CONFIG = {
    "api_key": "交流成您自己的 Deepseek KEY",
    "base_url": "https://api.deepseek.com",
    "model": "deepseek-chat"
}

# 文章设置
ARTICLES = [
  {
    "title": "《equals 战 hashCode 怎样准确沉写?那可以是您代码 Bug 的泉源》",
    "topic": "Java工具比力体制取Hash相干的准确写法"
  },
  {
    "title": "《写出可保护的 Java 列举:从简朴常质到战略启拆的演变之路》",
    "topic": "Java中列举范例的退阶用法取设想情势融合"
  }
]

# 主动化设置
AUTO_CONFIG = {
    "wait_time_min": 20,  # 最小等候时间(秒)
    "wait_time_max": 30,  # 最年夜等候时间(秒)
    "save_wait_time": 10    #保管 后等候时间(秒)
}
主进口源码以下:
from playwright.sync_api import sync_playwright
import time
import os
from dotenv import load_dotenv
from openai import OpenAI
import random
from config import AI_PROMPTS, ARTICLES, AUTO_CONFIG, API_CONFIG

class CSDNAutoEditor:
    def __init__(self):
        self.browser = None
        self.page = None
        load_dotenv()
        self.client = OpenAI(
            api_key=API_CONFIG["api_key"],
            base_url=API_CONFIG["base_url"]
        )
      
    def setup_browser(self):
        """树立浏览器"""
        try:
            playwright = sync_playwright().start()
            self.browser = playwright.chromium.launch(
                headless=False  # 显现浏览器界里
            )
            #创立 新的高低文,没有保留所有形状
            context = self.browser.new_context(
                storage_state=None,  # 没有保留所有形状
                viewport={'width': 1920, 'height': 1080},
                ignore_https_errors=True,
                bypass_csp=True
            )
            self.page = context.new_page()
            print("无痕浏览器启用胜利!")
        except Exception as e:
            print(f"浏览器启用失利: {str(e)}")
            raise
      
    def login(self):
        """登录CSDN"""
        try:
            self.page.goto("https://passport.csdn.net/login")
           
            #等候 微疑登录标签呈现并面打
            self.page.wait_for_selector('span.tabs-active:has-text("微疑登录")', state="visible")
            print("已经找到微疑登录标签")
           
            #等候 10秒
            print("等候10秒...")
            time.sleep(10)
           
            # 面打新修文章
            self.create_new_article()
            return True
        except Exception as e:
            print(f"登录失利: {str(e)}")
            raise
      
    def create_new_article(self):
        """创立新文章"""
        try:
            self.page.goto("https://editor.csdn.net/md/?not_checkout=1")
            time.sleep(5)  #等候 编纂器减载
            print("已经翻开文章编纂器")
        except Exception as e:
            print(f"翻开编纂器失利: {str(e)}")
            raise
      
    def write_content(self, title, content):
        """写进文章实质"""
        try:
            #等候 题目输出框减载
            title_input = self.page.wait_for_selector('input.article-bar__title--input', state="visible")
            title_input.fill(title)
            print("题目已经输出")
           
            #等候 编纂器减载
            editor = self.page.wait_for_selector('pre.editor__inner.markdown-highlighting', state="visible")
           
            # 使用JavaScript去树立实质,保证换止准确
            self.page.evaluate("""(content) => {
                const editor = document.querySelector('pre.editor__inner.markdown-highlighting');
                editor.innerHTML = content;
                // 触收输出工作,保证编纂器革新
                const event = new Event('input', { bubbles: true });
                editor.dispatchEvent(event);
            }""", content)
           
            print("文章实质已经输出")
           
        except Exception as e:
            print(f"写进实质时发作毛病: {str(e)}")
            raise
      
    def save_draft(self):
        """保留初稿"""
        try:
            #等候 保留按钮减载
            save_button = self.page.wait_for_selector('button.btn.btn-save', state="visible")
            save_button.click()
            time.sleep(AUTO_CONFIG["save_wait_time"])  #等候 保留完毕
            print("文章已经保留为初稿")
           
            # 随机等候时间
            wait_time = random.randint(AUTO_CONFIG["wait_time_min"], AUTO_CONFIG["wait_time_max"])
            print(f"等候 {wait_time} 秒后持续...")
            time.sleep(wait_time)
        except Exception as e:
            print(f"保留初稿时发作毛病: {str(e)}")
            raise
      
    def close(self):
        """封闭浏览器"""
        if self.browser:
            self.browser.close()
            print("浏览器已经封闭")

    def generate_article(self, topic, title):
        """使用AI天生文章实质"""
        try:
            print(f"开端天生文章中: {topic}...")
            response = self.client.chat.completions.create(
                model=API_CONFIG["model"],
                messages=[
                    {"role": "system", "content": AI_PROMPTS["system_prompt"]},
                    {"role": "user", "content": AI_PROMPTS["user_prompt_template"].format(topic=topic)}
                ],
                stream=False
            )
           
            content = response.choices[0].message.content
            print(f"文章实质天生结束,准备下一篇")
            return title, content
        except Exception as e:
            print(f"天生文章失利: {str(e)}")
            raise

def main():
    editor = CSDNAutoEditor()
    try:
        editor.setup_browser()
        print("在施行登录操纵...")
        if editor.login():
            print("登录胜利!")
            # 遍历文章设置
            for article in ARTICLES:
                print(f"\n开端天生文章: {article['title']}...")
                if article['topic'] == '1':
                    continue
                editor.create_new_article()
                title, content = editor.generate_article(article['topic'], article['title'])
                editor.write_content(title, content)
                editor.save_draft()
                print(f"文章 '{title}' 已经保留为初稿")
           
            print("\n统统文章编辑完毕!")
           
            #等候 用户脚动封闭浏览器
            print("请脚动封闭浏览器窗心...")
            while True:
                time.sleep(1)
        else:
            print("登录失利,请查抄账号暗码可否准确")
    except Exception as e:
        print(f"发作毛病: {str(e)}")
        print("请脚动封闭浏览器窗心...")
        while True:
            time.sleep(1)

if __name__ == "__main__":
    main() 设置间接启用效劳便可。

Cursor + Deepseek AI 场景真战(附上残破源码)w17.jpg

而后会主动弹出 CXXN 页里。那里您能够正在 30s 以内扫码。扫完以后就能够主动写文章!以是您想一想,举一反三。您借能够用它去写哪些文章?

而且留神到代码中,是由干谁人手艺的。没有至于被觉得是!被推进小乌屋。

举荐浏览:运行一周突然瓦解:一次 Spring 固态依靠注进激发的线上 T0 级变乱,您果然要留神了一点儿 Function 的初级用法介绍!年夜厂口试民皆爱问:SpringMVC恳求链究竟是如何通报的?对于 Optional 的一点儿初级用法!用 Java 建立个简版 Either + Optional DSL 框架:让毛病处置文雅而函数式@Transactional 的断绝级别:四年夜断绝体制让事件更宁静!Nginx 设置文献这样写?99%的学程皆学错了!用了5年Spring,尔才发明 @Configuration 战 @Component 好这样多本性 JavaDoc 定造化,让代码瞅起去更文雅,更牛逼,堪比源码感谢各人浏览,创做不容易,别忘记助小主面个小小的存眷哦,您的存眷关于小主来讲,这但是能源的源泉。前面会戴去更多出色的文章,连续革新——
Cursor + Deepseek AI 场景真战(附上残破源码)w18.jpg

识别两维码存眷咱们

面打分享此文
您需要登录后才可以回帖 登录 | 立即注册 qq_login

本版积分规则

发布主题
阅读排行更多+
用专业创造成效
400-778-7781
周一至周五 9:00-18:00
意见反馈:server@mailiao.group
紧急联系:181-67184787
ftqrcode

扫一扫关注我们

Powered by 职贝云数A新零售门户 X3.5© 2004-2025 职贝云数 Inc.( 蜀ICP备2024104722号 )