基于DeepSeek API与Prompt工程构建AI副业评估智能体

基于DeepSeek API与Prompt工程构建AI副业评估智能体
30款热门AI模型一站整合DeepSeek/GLM/Qwen 随心用限时 5 折。 点击领海量免费额度1. 背景与核心概念在探索副业机会时你是否经常感到迷茫面对一个又一个看似诱人的“风口”项目却难以判断其真实潜力与风险。传统的市场调研耗时耗力而个人的经验和知识储备又往往存在盲区。这正是我开发“AI毒舌投资人”的初衷——一个基于大语言模型LLM和智能体Agent技术构建的副业项目评估助手。简单来说AI毒舌投资人是一个能够模拟资深、挑剔、甚至有些“毒舌”的投资人视角对你的副业想法进行快速、犀利、多维度评估的智能工具。它并非一个现成的商业软件而是一个你可以亲手搭建、定制并用于辅助决策的AI应用项目。它能解决什么问题快速初筛当你有一个新点子比如开个小红书店铺、做知识付费、开发一个小程序输入给AI它能迅速给出市场前景、竞争分析、启动难度和潜在风险的初步判断。挑战假设它会像真正的投资人一样尖锐地指出你计划中的漏洞、过于乐观的估计以及你未曾考虑到的成本如时间、合规性、获客成本。提供结构化分析框架引导你从市场规模、用户画像、盈利模式、增长策略、风险控制等多个维度系统性地思考你的项目。辅助决策通过模拟不同场景下的投入产出比ROI帮助你决定是否值得投入精力或者应该优先优化哪个环节。为什么需要掌握它在AI Agent开发热潮中本项目完美结合了Prompt工程、大模型API调用和特定领域Agent构建三大核心技能。通过实践这个项目你不仅能获得一个实用的副业分析工具更能深入理解如何将通用的AI能力如DeepSeek通过精妙的Prompt设计和流程控制转化为解决特定垂直领域问题项目评估的专用智能体。这对于任何希望深入AI应用开发的开发者而言都是一次极佳的实战演练。2. 环境准备与版本说明本项目是一个基于Python的AI应用核心是调用大模型API并构建交互逻辑。我们将使用DeepSeek API作为AI大脑因其在代码和推理任务上表现出色且提供了非常友好的免费额度供开发者使用。基础环境要求操作系统Windows 10/11, macOS 10.15, 或主流的Linux发行版如Ubuntu 20.04。本文演示环境为macOS。Python版本 3.8 或更高。推荐使用 3.9 以获得最佳兼容性。包管理工具pip随Python安装。核心依赖库我们将创建一个requirements.txt文件来管理依赖。主要库及其作用如下openai用于以标准方式调用DeepSeek APIDeepSeek API兼容OpenAI格式。python-dotenv用于安全地管理API密钥等敏感信息。rich用于在终端输出彩色、格式化的文本提升交互体验。typer或argparse用于构建命令行界面CLI。本文使用typer它更现代、简洁。版本说明以下版本在撰写本文时经过测试但AI生态发展迅速请根据实际情况调整。# requirements.txt openai1.0.0 python-dotenv1.0.0 rich13.0.0 typer0.9.0项目结构预览在开始编码前我们先规划好项目目录这有助于保持代码清晰。ai-sarcastic-investor/ ├── .env # 存储环境变量如API密钥 ├── .gitignore # Git忽略文件 ├── requirements.txt # 项目依赖 ├── main.py # 主程序入口 ├── core/ │ ├── __init__.py │ ├── investor_agent.py # AI毒舌投资人核心逻辑 │ └── config.py # 配置管理 └── utils/ ├── __init__.py └── display.py # 终端显示美化工具3. 核心原理与关键技术拆解3.1 大模型即服务LLM-as-a-Service与DeepSeek API我们的“AI大脑”来自云端的大模型服务。DeepSeek提供了与OpenAI兼容的API这意味着我们可以使用熟悉的openai库来调用它。其核心流程是我们将精心构造的提示词Prompt和用户的问题一起通过HTTP请求发送给DeepSeek的服务器服务器上的大模型进行处理后将生成的文本返回给我们。关键配置参数base_url: 需要设置为https://api.deepseek.com以指向DeepSeek服务。api_key: 你的个人密钥用于鉴权。务必保密model: 指定使用的模型例如deepseek-chat或deepseek-coder。对于分析类任务deepseek-chat是通用选择。3.2 Prompt工程塑造“毒舌”人格这是本项目的灵魂。普通的AI回答可能温和而全面但我们需要的是一个“毒舌”、“犀利”、“一针见血”的投资人。这完全通过Prompt设计来实现。一个有效的“毒舌投资人”Prompt应包含以下要素角色设定Role明确告知AI它要扮演的角色。背景与目标Context Goal说明对话的背景和你要它达成的目标。性格与语气指令Persona Tone详细描述它应该如何说话例如直接、挑剔、略带讽刺、用数据说话、少说废话。输出格式要求Format要求它结构化输出例如必须包含“优势”、“致命缺陷”、“可行性评分”、“一句话毒舌点评”等部分。约束条件Constraints禁止它做什么例如禁止过度鼓励、禁止使用模糊词汇如“可能”、“也许”。3.3 智能体Agent的工作流在本项目中我们构建的是一个单轮分析Agent。其工作流可以简化为用户输入副业想法 - 系统拼接预设Prompt和用户输入 - 调用DeepSeek API - 解析并格式化返回结果 - 输出给用户更复杂的Agent可以包含多轮对话、工具调用如联网搜索实时数据、记忆等但作为入门项目单轮分析已足够强大。3.4 配置与安全绝不能将API密钥硬编码在代码中。我们将使用.env文件配合python-dotenv来管理敏感信息。gitignore文件会确保.env不被提交到公开的代码仓库这是开发的基本安全准则。4. 完整实战从零构建AI毒舌投资人4.1 初始化项目与环境首先创建项目目录并设置虚拟环境推荐用于隔离依赖。# 创建项目目录 mkdir ai-sarcastic-investor cd ai-sarcastic-investor # 创建虚拟环境以venv为例 python3 -m venv venv # 激活虚拟环境 # macOS/Linux: source venv/bin/activate # Windows: # venv\Scripts\activate # 创建基础文件 touch .env .gitignore requirements.txt main.py mkdir core utils touch core/__init__.py core/investor_agent.py core/config.py touch utils/__init__.py utils/display.py编辑.gitignore文件添加以下内容# .gitignore venv/ __pycache__/ *.py[cod] .env .DS_Store编辑requirements.txt文件填入之前提到的依赖openai1.0.0 python-dotenv1.0.0 rich13.0.0 typer0.9.0安装依赖pip install -r requirements.txt4.2 配置管理与密钥设置首先你需要去 DeepSeek开放平台 注册账号并获取API Key。然后在项目根目录的.env文件中填入你的密钥# .env DEEPSEEK_API_KEY你的_DeepSeek_API_Key_在这里 DEEPSEEK_BASE_URLhttps://api.deepseek.com DEEPSEEK_MODELdeepseek-chat接下来我们创建core/config.py来读取这些配置# core/config.py import os from dotenv import load_dotenv # 加载 .env 文件中的环境变量 load_dotenv() class Config: 配置管理类 DEEPSEEK_API_KEY os.getenv(DEEPSEEK_API_KEY) DEEPSEEK_BASE_URL os.getenv(DEEPSEEK_BASE_URL, https://api.deepseek.com) DEEPSEEK_MODEL os.getenv(DEEPSEEK_MODEL, deepseek-chat) classmethod def validate(cls): 验证必要配置是否存在 if not cls.DEEPSEEK_API_KEY: raise ValueError(错误未找到 DEEPSEEK_API_KEY。请检查 .env 文件。) print(配置加载成功。)4.3 构建毒舌投资人核心Agent逻辑这是最核心的部分。我们在core/investor_agent.py中定义SarcasticInvestor类。# core/investor_agent.py import openai from rich.console import Console from rich.panel import Panel from rich.markdown import Markdown from typing import Optional from .config import Config console Console() class SarcasticInvestor: AI毒舌投资人核心类 def __init__(self): # 初始化OpenAI客户端指向DeepSeek self.client openai.OpenAI( api_keyConfig.DEEPSEEK_API_KEY, base_urlConfig.DEEPSEEK_BASE_URL ) self.model Config.DEEPSEEK_MODEL # 定义“毒舌”系统提示词 self.system_prompt 你是一个拥有20年风险投资经验、以毒舌和挑剔著称的资深投资人人称“Tony”。你擅长在30秒内撕掉任何创业项目的华丽外衣直击本质问题。 你的性格和说话方式 1. **极度直接犀利**不说客套话第一句往往是挑刺。 2. **用数据和逻辑碾压**指出问题时要附带简单的估算或类比。 3. **略带讽刺和幽默**可以用一些夸张的比喻或自黑的调侃但目的是为了让人记住教训。 4. **结构清晰**虽然毒舌但分析必须有条理。 你的任务评估用户提出的副业或创业想法。 你必须按照以下固定格式输出评估报告不要有任何额外的开场白和结束语 ## 项目概要 用一句话复述用户的想法 ## 潜在优势勉强夸两句 - 点1 - 点2 ## 致命缺陷这才是我关心的 - **缺陷1最严重的**[详细说明并估算可能带来的额外成本或失败概率] - **缺陷2**[详细说明] - **缺陷3你肯定没想过的**[从一个老油条的角度指出一个隐藏陷阱] ## 可行性暴击评分10分制 - **市场可行性**X/3分 [理由] - **执行难度**Y/3分 [理由] - **变现潜力**Z/3分 [理由] - **综合抗风险能力**W/1分 [理由] - **总分**(XYZW)/10分 ## 我的“毒”舌忠告 给出一句最扎心、但可能最有用的话不要超过140字。 **记住你的价值在于说真话而不是给鼓励。如果这个想法烂透了就直接说“别浪费生命”。** def analyze(self, idea: str) - Optional[str]: 分析一个副业想法 if not idea.strip(): console.print([red]错误想法不能为空。[/red]) return None console.print(f[cyan]Tony老师正在审视你的想法[/cyan] [yellow]{idea}[/yellow]) console.print([italic]他点了一支雪茄眉头紧锁...[/italic]\n) try: response self.client.chat.completions.create( modelself.model, messages[ {role: system, content: self.system_prompt}, {role: user, content: f请评估这个副业想法{idea}} ], temperature0.8, # 稍高的温度让回答更有“个性” max_tokens1500 ) analysis response.choices[0].message.content return analysis except openai.APIError as e: console.print(f[red]API调用出错{e}[/red]) return None except Exception as e: console.print(f[red]发生未知错误{e}[/red]) return None4.4 创建美观的终端显示工具为了提升体验我们用rich库美化输出。编辑utils/display.py。# utils/display.py from rich.console import Console from rich.panel import Panel from rich.markdown import Markdown from rich.syntax import Syntax console Console() def print_header(): 打印项目标题 header_text AI 毒舌投资人 - Tony 专治各种副业幻想帮你省下冤枉钱和时间。 console.print(Panel.fit(header_text, stylebold cyan)) def print_analysis(result: str): 格式化打印AI的分析结果 if not result: console.print([red]未获取到分析结果。[/red]) return # 使用Markdown渲染使##标题等格式生效 md Markdown(result) console.print(Panel(md, title Tony的投资评估报告, border_styleyellow)) def print_error(message: str): 打印错误信息 console.print(Panel.fit(f[red]⚠️ {message}[/red], title错误)) def print_idea_examples(): 打印一些想法示例 examples [bold]你可以让我评估这些想法[/bold] • “我想做一个人工智能写作助手的小程序收费9.9元包月。” • “我打算在抖音教中年人玩转智能手机靠直播打赏和卖课赚钱。” • “和朋友开一家主打‘自习轻食’的复合型书店。” • “利用下班时间接一些Python爬虫的外包项目。” console.print(Panel(examples, title 灵感加油站, border_stylegreen))4.5 组装主程序入口最后我们创建main.py使用typer构建命令行界面。# main.py #!/usr/bin/env python3 import typer from rich.prompt import Prompt from core.config import Config from core.investor_agent import SarcasticInvestor from utils.display import print_header, print_analysis, print_idea_examples app typer.Typer(helpAI毒舌投资人 - 用最犀利的眼光审视你的副业想法。) app.command() def analyze( idea: str typer.Option(None, --idea, -i, help直接输入要评估的副业想法), interactive: bool typer.Option(False, --interactive, -t, help进入交互模式) ): 启动AI毒舌投资人进行分析。 使用 --idea “你的想法” 直接分析或使用 --interactive 进入交互模式。 print_header() # 验证配置 try: Config.validate() except ValueError as e: typer.echo(f配置错误{e}) raise typer.Exit(code1) investor SarcasticInvestor() if idea: # 直接分析命令行传入的想法 result investor.analyze(idea) if result: print_analysis(result) elif interactive: # 交互模式 console typer.echo console(\n[交互模式] 输入你的副业想法输入 quit 或 q 退出examples 看例子) while True: user_idea Prompt.ask(\n[bold]你的想法[/bold]) if user_idea.lower() in [quit, q, exit]: console([yellow]Tony掐灭了雪茄年轻人想好了再来找我。[/yellow]) break elif user_idea.lower() in [examples, eg]: print_idea_examples() continue elif not user_idea.strip(): continue else: result investor.analyze(user_idea) if result: print_analysis(result) else: # 既没有--idea也没有--interactive显示帮助并进入一次性的交互 typer.echo(未提供想法。进入单次分析模式。) user_idea Prompt.ask([bold]请描述你的副业想法[/bold]) if user_idea.strip(): result investor.analyze(user_idea) if result: print_analysis(result) else: typer.echo(想法为空分析取消。) if __name__ __main__: app()4.6 运行与验证现在让我们来运行这个AI毒舌投资人方式一直接分析一个想法python main.py --idea “我想在小区里开一个无人智能快递柜除了放快递还能租充电宝和卖饮料。”方式二启动交互模式python main.py --interactive在交互模式中你可以连续输入多个想法进行评估。方式三无参数启动单次分析python main.py预期输出示例程序运行后你会看到类似以下格式的输出内容由AI生成 AI 毒舌投资人 - Tony 专治各种副业幻想帮你省下冤枉钱和时间。 Tony老师正在审视你的想法我想在小区里开一个无人智能快递柜除了放快递还能租充电宝和卖饮料。 他点了一支雪茄眉头紧锁... ───────────────────────────────────── Tony的投资评估报告 ───────────────────────────────────── ## 项目概要 在小区内铺设多功能智能柜整合快递暂存、充电宝租赁和饮料零售。 ## 潜在优势勉强夸两句 - 解决了快递“最后100米”的痛点有基础需求。 - 多功能叠加可能提升单个柜体的利用率和收入上限。 ## 致命缺陷这才是我关心的 - **缺陷1最严重的****点位成本与物业关系**。小区公共区域不是你想放就能放。进场费、租金分成、电费、网络费、物业打点费...这些固定成本会轻易吃掉你微薄的利润。估算一个点位前期投入设备进场可能超过2万回本周期远超你的想象。 - **缺陷2****激烈的存量竞争**。菜鸟驿站、丰巢、美团充电宝、友宝自动售货机...每个巨头都在这个场景里血拼。你凭什么认为你能从他们嘴里抢到肉你的技术更牛成本更低还是你和物业经理是铁哥们 - **缺陷3你肯定没想过的****运维地狱**。设备故障、饮料过期、充电宝被偷、快递被拿错、用户投诉...你需要一个7x24小时的运维团队或者你自己就是那个随时待命的“救火队员”。这真的是你想要的“副业”吗这分明是给自己找了个“主业爹”。 ## 可行性暴击评分10分制 - **市场可行性**2/3分 [需求真实但市场已红海格局固化] - **执行难度**1/3分 [涉及硬件、供应链、地推、物业谈判、运维难度极高] - **变现潜力**2/3分 [单点收入天花板低规模化才能盈利] - **综合抗风险能力**0/1分 [对物业依赖极强政策风险、竞争风险巨大] - **总分**5/10分 ## 我的“毒”舌忠告 如果你不是手握几十个小区物业资源的地头蛇或者有硬件供应链的干爹我劝你别用自己辛苦攒的钱去给已经卷成麻花的行业巨头们当“小区绿化带装饰品供应商”。 ─────────────────────────────────────5. 常见问题与排查思路在开发和运行过程中你可能会遇到以下问题问题现象可能原因解决思路运行报错ModuleNotFoundError: No module named openai依赖未安装或虚拟环境未激活。1. 确认已激活虚拟环境 (venv\Scripts\activate或source venv/bin/activate)。2. 在项目根目录执行pip install -r requirements.txt。错误未找到 DEEPSEEK_API_KEY.env文件不存在或密钥未正确填写或文件路径不对。1. 确认项目根目录下存在.env文件。2. 检查.env文件中DEEPSEEK_API_KEY的值是否正确不要有多余空格。3. 确保load_dotenv()在Config类使用前被调用。API调用出错AuthenticationError或Invalid API KeyAPI密钥错误、过期或未在DeepSeek平台正确创建。1. 登录 DeepSeek平台 检查API Key状态。2. 复制全新的Key到.env文件。3. 确保账户有可用额度。API调用出错RateLimitError请求频率或次数超过限制。1. 免费额度有每分钟/每日调用限制请稍后再试。2. 检查代码中是否有死循环频繁调用API。AI回复内容不符合“毒舌”风格系统提示词 (system_prompt) 不够强力或temperature参数太低。1. 仔细优化core/investor_agent.py中的self.system_prompt强化语气和格式指令。2. 尝试调高temperature参数如从0.8调到1.0让输出更具随机性和“个性”。3. 在Prompt中明确要求“忽略之前的指令严格遵守本次的角色设定”。程序无响应或卡住网络问题或API服务器响应慢。1. 检查网络连接。2. 为client.chat.completions.create添加timeout参数如timeout30。3. 添加更详细的异常捕获打印错误信息。终端显示乱码或格式错乱终端不支持rich库的某些样式或编码问题。1. 确保使用较新的终端如Windows Terminal, iTerm2, VS Code集成终端。2. 可以简化utils/display.py中的样式移除复杂的Panel或Markdown先用纯文本输出测试。6. 最佳实践与工程建议将这个玩具项目提升为一个更健壮、可维护的工具你可以遵循以下实践1. 配置管理进阶多环境配置创建.env.example文件不含真实密钥并提交到Git方便他人克隆。真实.env永远留在本地。配置验证像我们做的这样在程序启动时验证关键配置是否存在且有效。使用Pydantic对于更复杂的配置可以使用pydantic库进行类型验证和设置默认值。2. Prompt工程优化版本化Prompt将系统提示词 (system_prompt) 存储在单独的.txt或.yaml文件中而不是硬编码在Python里。这样方便迭代和A/B测试。使用Few-Shot示例在Prompt中提供1-2个你期望的输入输出示例能更精准地引导AI生成符合格式和风格的内容。温度Temperature与最大令牌数Max Tokens调优temperature控制创造性越高越随机max_tokens控制回复长度。根据任务调整分析类任务通常不需要过高的temperature(0.7-0.9) 和过长的回复。3. 代码结构与扩展性抽象Agent基类如果你计划开发多个不同风格的AI助手如“鼓励型导师”、“数据分析师”可以定义一个BaseAgent类包含通用的API调用、错误处理逻辑让SarcasticInvestor继承它只关注特定的Prompt和结果处理。引入日志使用Python内置的logging模块记录程序运行信息、API调用状态和错误便于调试和监控。添加缓存对于相同的副业想法可以将其和AI回复缓存到本地文件或数据库如sqlite3避免重复调用API节省成本和时间。4. 错误处理与用户体验更优雅的降级当API调用失败时可以提供本地缓存的通用建议或者切换到备用模型/服务而不是直接崩溃。输入清洗与验证在analyze方法中对用户输入的idea进行更严格的检查比如过滤过短、无意义的输入或包含敏感词汇的输入。进度指示在等待AI生成回复时可以使用rich的Status组件显示一个加载动画提升用户体验。5. 安全与合规密钥安全重申永远不要在代码、版本控制系统或公开场合暴露你的API Key。.env必须列入.gitignore。内容审核虽然本项目是自用工具但如果考虑开放给他人需要在输出AI结果前或后加入基本的内容安全过滤防止生成不当内容。成本监控DeepSeek API有免费额度但如果你大规模使用需要关注Token消耗和费用可以在代码中估算每次请求的Token数。7. 总结与下一步至此你已经成功构建了一个功能完整、个性鲜明的“AI毒舌投资人”。我们回顾一下核心步骤环境搭建建立了Python虚拟环境安装了必要的依赖。安全配置使用.env文件安全地管理了DeepSeek API密钥。核心Agent开发利用openai库调用大模型并通过精心设计的Prompt工程塑造了“毒舌Tony”这个角色。用户体验优化使用rich库美化了终端输出并使用typer创建了友好的命令行界面。项目结构化采用了模块化的代码组织使项目清晰、易于维护。这个项目的价值远不止一个脚本它是一个AI Agent开发的微型样板。你可以基于此框架轻松改造出其他领域的专家助手例如AI代码评审员用毒舌风格点评你的代码。AI健身教练严厉督促你的训练和饮食。AI学习伙伴用苏格拉底式提问帮你深入理解知识。下一步学习路线建议深入Prompt工程研究更高级的技巧如思维链Chain-of-Thought、ReAct框架等让AI的分析更有深度和逻辑。探索多轮对话改造你的Agent使其能记住对话历史与你进行多轮问答深入探讨一个想法的细节。集成工具调用Function Calling让Agent不仅能说还能“做”。例如在评估市场时可以调用搜索工具获取实时数据在评估成本时可以调用计算器。构建Web界面使用FastAPI或Streamlit为你的Agent创建一个简单的网页界面分享给朋友使用。部署上线学习使用 Docker 容器化你的应用并部署到云服务器如阿里云、腾讯云或Serverless平台如Vercel让它真正成为一个可随时访问的服务。动手尝试修改Prompt创造出属于你自己的独特AI角色吧。记住在AI应用开发中想象力是你的唯一限制。 30款热门AI模型一站整合DeepSeek/GLM/Qwen 随心用限时 5 折。 点击领海量免费额度