覆盖内容:提示词基础 → Few-shot → Chain of Thought → 结构化输出 → 文本总结 → 分类与情感分析 → 代码生成 → 实战
最终产出:AI 简历优化助手(上传简历 → AI 分析 → 给出修改建议)
前置要求:完成第二篇 API 调用入门


一、什么是 Prompt Engineering?为什么重要?

大模型像一个通晓万物的实习生——聪明但需要精准指挥。你不会说"帮我把这事做了",而是说"把这份数据按销售额降序排列,只取前 10 条,输出成 Markdown 表格"。

Prompt Engineering 就是学会给 AI 下精确指令,让它每次输出都可预期、可解析、可集成到程序里。


二、清晰指令——把话说清楚

2.1 模糊 vs 精确

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com"
)

# ❌ 模糊指令——AI 自由发挥,每次结果都不同
def ask_vague():
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{"role": "user", "content": "写一段关于 Python 的文字"}]
    )
    return response.choices[0].message.content

# ✅ 精确指令——角色 + 格式 + 长度 + 内容要求
def ask_precise():
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{
            "role": "user",
            "content": """你是一个 Python 入门讲师。请遵守以下规则:

1. 用一段话(不超过 80 字)解释 Python 是什么
2. 列出 3 个 Python 最适合新手的应用场景
3. 每个场景用一句话说明

按以下格式输出:
【一句话解释】
xxx

【三个应用场景】
1. 场景名:说明
2. 场景名:说明
3. 场景名:说明"""
        }]
    )
    return response.choices[0].message.content

print(ask_precise())

输出:

【一句话解释】
Python 是一门语法简洁、上手极快的编程语言,特别适合新手快速入门。

【三个应用场景】
1. 数据分析:用几行代码就能处理 Excel 表格、画图表
2. AI 应用开发:调用大模型 API,搭建聊天机器人和知识库
3. 自动化脚本:自动整理文件、批量处理文档、定时发送邮件

2.2 指令六要素

一个完整的 prompt 应该包含:

要素 说明 例子
角色 你是谁 “你是一个资深后端工程师”
任务 要做什么 “审查以下 Python 代码”
约束 不能做什么 “不要输出解释文字,只要 JSON”
格式 输出长什么样 “用 Markdown 表格” / “JSON 格式”
示例 参考案例 给 1-2 个输入输出样例
边界 遇到特殊情况怎么办 “如果找不到答案,说不知道”

三、Few-shot Prompting——给几个例子让 AI 照做

3.1 原理

把"输入 → 输出"的例子放进 prompt,AI 自动学会规律。

# 邮件分类器 —— 用两个例子教 AI
def classify_email(subject):
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{
            "role": "user",
            "content": f"""你是一个邮件分类助手。将邮件标题分为三类:工作、社交、垃圾。

示例 1:
输入:周三部门例会通知
输出:工作

示例 2:
输入:恭喜你中奖了!点击领取
输出:垃圾

现在对以下邮件分类,只输出「工作」「社交」或「垃圾」三个字:
输入:{subject}
输出:"""
        }],
        temperature=0
    )
    return response.choices[0].message.content

# 测试
emails = [
    "关于 Q2 项目进度的会议纪要",
    "周末一起去打球吗?",
    "您的账户存在异常登录,请立即点击链接验证",
    "数据分析组本周 OKR 复盘",
]
for e in emails:
    print(f"{e}{classify_email(e)}")

输出:

关于 Q2 项目进度的会议纪要 → 工作
周末一起去打球吗? → 社交
您的账户存在异常登录,请立即点击链接验证 → 垃圾
数据分析组本周 OKR 复盘 → 工作

3.2 Few-shot 的格式控制

# 用 Few-shot 格式化输出
def extract_skills(job_desc):
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{
            "role": "user",
            "content": f"""从职位描述中提取技术栈,输出 JSON 数组。

示例 1:
输入:要求熟悉 Spring Boot、MySQL、Redis,了解 Docker
输出:["Spring Boot", "MySQL", "Redis", "Docker"]

示例 2:
输入:精通 Vue3 和 TypeScript,有 Node.js 经验优先
输出:["Vue3", "TypeScript", "Node.js"]

现在提取:
输入:{job_desc}
输出:"""
        }],
        temperature=0.3
    )
    return response.choices[0].message.content

print(extract_skills(
    "负责 Python 后端开发,熟练使用 FastAPI 和 PostgreSQL,"
    "有 LangChain 和 Docker 部署经验者优先"
))
# 输出:["Python", "FastAPI", "PostgreSQL", "LangChain", "Docker"]

四、Chain of Thought(思维链)——让 AI 逐步推理

4.1 不加 CoT vs 加 CoT

# ❌ 直接问——容易错
prompt_bad = "小明的年龄是小红的 2 倍。3 年后两人年龄和是 27 岁。小红现在几岁?"

# ✅ 加 CoT——让 AI 先列步骤再给答案
prompt_cot = """小明的年龄是小红的 2 倍。3 年后两人年龄和是 27 岁。小红现在几岁?

请按以下步骤思考:
第一步:设小红现在的年龄为 x
第二步:小明的年龄为 2x
第三步:3 年后小红 x+3 岁,小明 2x+3 岁
第四步:列方程 (x+3) + (2x+3) = 27
第五步:解方程,得出 x
第六步:写出最终答案"""

4.2 动手:数学题分步求解器

# cot_solver.py —— 思维链分步求解器
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com"
)

def solve_step_by_step(question):
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{
            "role": "user",
            "content": f"""请用思维链逐步解答以下问题。

格式要求:
1. 每一步用「第N步:」开头
2. 最后给出「最终答案:」
3. 只输出推理过程,不要额外解释

问题:{question}"""
        }],
        temperature=0
    )
    return response.choices[0].message.content

# 测试
questions = [
    "一个长方形的长是宽的 3 倍。如果周长是 64 厘米,宽是多少?",
    "3 个人 3 天喝 3 桶水,9 个人 9 天喝几桶水?",
]

for q in questions:
    print(f"\n📐 {q}")
    print("-" * 50)
    print(solve_step_by_step(q))
    print("-" * 50)

4.3 CoT 的核心技巧

# 技巧 1:加入「让我们一步步思考」
prompt = "问题:...\n让我们一步步思考:"

# 技巧 2:给一个完整的思维链示例(Few-shot CoT)
prompt = """示例:
问题:一个苹果 3 元,小明买了 5 个,付了 20 元,找零多少?
第一步:5 个苹果总价 = 5 × 3 = 15 元
第二步:找零 = 20 - 15 = 5 元
最终答案:5 元

现在回答:
问题:{你的问题}
第一步:"""

五、结构化输出——让 AI 返 JSON / Markdown / 表格

程序不能吃大段文字,必须解析。让 AI 稳定输出结构化数据。

5.1 手动约束 JSON 格式

def extract_person(text):
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{
            "role": "system",
            "content": "你只输出 JSON,不要加 markdown 代码块标记,不要加任何解释。"
        }, {
            "role": "user",
            "content": f"""从以下文本提取姓名、年龄、城市、技能(数组)。

文本:{text}

输出格式:
{{"name": "...", "age": 数字, "city": "...", "skills": ["..."]}}

如果某项没有,填 null。"""
        }],
        temperature=0
    )
    return response.choices[0].message.content

import json

result = extract_person(
    "小啾啾,22 岁,武汉人,会 Java、Python 和 C++,正在找后端工作"
)
person = json.loads(result)
print(person["skills"])  # ['Java', 'Python', 'C++']

5.2 表格输出

def compare_tech():
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{
            "role": "user",
            "content": """比较 Python 和 Java 在后端开发中的特点。

用 Markdown 表格输出,列:特性、Python、Java、建议
至少 5 行。

不要加「好的」「以下是」之类废话,直接输出表格。"""
        }]
    )
    return response.choices[0].message.content

print(compare_tech())

5.3 动手:通用结构化提取器

# structured_extractor.py —— 把任意文字提取成 JSON
import json
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com"
)

def extract(text, schema_desc, examples=""):
    """通用结构化提取"""
    prompt = f"""从文本中提取结构化信息,输出合法 JSON。

提取目标:{schema_desc}

{examples}

规则:
1. 只输出 JSON,不要加 ```json 标记
2. 缺失字段填 null
3. 数组用 [],对象用 {{}}

文本:{text}"""
    
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{"role": "user", "content": prompt}],
        temperature=0
    )
    raw = response.choices[0].message.content.strip()
    # 清理可能的 markdown 包裹
    if raw.startswith("```"):
        raw = raw.split("\n", 1)[1]
        raw = raw.rsplit("\n```", 1)[0]
    return json.loads(raw)

# ─── 用法一:提取项目信息 ───
project_desc = """
校园商城,SpringBoot 3 + Vue3 + MyBatis,
用了 DeepSeek Function Calling 做智能客服,
部署在 mall.qiuyangmm.top
"""

schema = "提取:project(项目名)、stack(技术栈数组)、features(特色功能数组)、url(网址)"
data = extract(project_desc, schema)
print(data)
# {'project': '校园小卖部商城', 'stack': ['SpringBoot 3', 'Vue3', 'MyBatis', 'DeepSeek'],
#  'features': ['智能客服', 'Function Calling'], 'url': 'mall.qiuyangmm.top'}

# ─── 用法二:提取面试信息 ───
job_desc = """
Java 后端开发,要求 1-3 年经验,
熟悉 Spring Cloud、RabbitMQ、Kubernetes,
base 武汉光谷,薪资 12-18K
"""
schema = "提取:position、experience、skills(数组)、location、salary_range"
data = extract(job_desc, schema)
print(data)

六、文本总结——长文变短文

6.1 分层总结

def summarize(text, length="short"):
    """多级总结"""
    prompts = {
        "short": "用一句话(不超过 40 字)总结以下内容",
        "medium": "用 3 句话总结以下内容,每句不超过 30 字",
        "detailed": "用 5 个要点总结以下内容,每个要点一行",
    }
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{
            "role": "user",
            "content": f"{prompts[length]}:\n\n{text}"
        }],
        temperature=0.3
    )
    return response.choices[0].message.content

6.2 动手:文章摘要生成器

# summarizer.py —— 文章摘要生成器
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com"
)

def summarize_article(text, style="要点"):
    """生成文章摘要
    
    style: 要点 / 一句话 / 关键词 / 脑图
    """
    style_prompts = {
        "要点": "用 3-5 个要点总结文章核心内容,每点一行,用「-」开头",
        "一句话": "用一句话概括文章主旨,不超过 50 字",
        "关键词": "提取 5-10 个关键词,用逗号分隔,不要额外文字",
        "脑图": "用缩进层级结构展示文章脉络,像思维导图一样",
    }
    
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{
            "role": "user",
            "content": f"{style_prompts[style]}\n\n文章:\n{text}"
        }],
        temperature=0.3
    )
    return response.choices[0].message.content

# 测试
article = """
大模型应用开发正在成为 2026 年最热门的就业方向之一。不同于模型训练需要大量GPU资源,
应用开发只需要掌握 API 调用、RAG 检索增强和 Agent 开发这三个核心技能。

RAG 技术让大模型能够访问外部知识库,解决了大模型「不知道企业内部数据」的痛点。
而 Function Calling 让大模型能够调用数据库、发送邮件、查询天气等外部工具,
真正实现从「聊天」到「干活」的跨越。

目前市场上对「大模型应用开发工程师」的需求同比增长超过 300%,薪资范围在 15K-35K 之间。
"""

print("=== 要点式 ===")
print(summarize_article(article, "要点"))
print("\n=== 一句话 ===")
print(summarize_article(article, "一句话"))
print("\n=== 关键词 ===")
print(summarize_article(article, "关键词"))

七、文本分类与情感分析

7.1 情感分析器

# sentiment_analyzer.py —— 评论情感分析
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com"
)

def analyze_sentiment(text):
    """分析情感:正面/负面/中性,带置信度"""
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{
            "role": "user",
            "content": f"""分析以下文本的情感倾向。

输出 JSON:
{{"sentiment": "正面/负面/中性", "confidence": 0.0-1.0, "keywords": ["情绪关键词1", "情绪关键词2"]}}

文本:{text}"""
        }],
        temperature=0
    )
    import json
    raw = response.choices[0].message.content.strip()
    if raw.startswith("```"):
        raw = raw.split("\n", 1)[1].rsplit("\n```", 1)[0]
    return json.loads(raw)

# 批量分析
reviews = [
    "产品非常好用,客服也很有耐心,下次还会买",
    "物流太慢了,包装也破了,差评",
    "今天收到了,还没用",
]

for r in reviews:
    result = analyze_sentiment(r)
    icon = {"正面": "😊", "负面": "😡", "中性": "😐"}
    print(f"{icon[result['sentiment']]} [{result['sentiment']}] {r[:30]}...")
    print(f"   置信度: {result['confidence']}, 关键词: {result['keywords']}")

7.2 批量分类 + 统计

def batch_classify(texts, categories):
    """批量将文本分到指定类别"""
    cat_list = "、".join(categories)
    
    results = []
    for text in texts:
        response = client.chat.completions.create(
            model="deepseek-chat",
            messages=[{
                "role": "user",
                "content": f"""将以下文本分类到:{cat_list}。
只输出类别名,一个字都不要多。

文本:{text}"""
            }],
            temperature=0
        )
        results.append({
            "text": text[:50],
            "category": response.choices[0].message.content.strip()
        })
    return results

# 给客服工单分类
tickets = [
    "我的订单怎么还没发货?",
    "收到的商品颜色不对,我要换货",
    "系统登录时一直提示密码错误",
    "如何申请退货退款?",
    "账号被锁定了,需要重置密码",
]

results = batch_classify(tickets, ["物流问题", "商品问题", "账号问题", "售后退款", "其他"])
for r in results:
    print(f"[{r['category']}] {r['text']}")

八、代码生成——自然语言 → SQL

# sql_generator.py —— 自然语言生成 SQL
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com"
)

def generate_sql(nl_query, table_info):
    """自然语言转 SQL"""
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{
            "role": "system",
            "content": "你是 SQL 生成器。只输出 SQL 语句,一行,不加任何解释。"
        }, {
            "role": "user",
            "content": f"""根据以下表结构和自然语言,生成 SQL 语句。

表结构:
{table_info}

自然语言查询:{nl_query}

只输出 SQL:"""
        }],
        temperature=0
    )
    return response.choices[0].message.content.strip()

# 定义表结构
schema = """
students(id, name, age, class_id)
classes(id, class_name, teacher)
scores(id, student_id, subject, score)
"""

# 测试
queries = [
    "查询所有学生的姓名和年龄",
    "查询张三的各科成绩",
    "查询每个班级的学生人数,按人数降序排列",
    "查询数学成绩大于 85 分的所有学生姓名和成绩",
]

for q in queries:
    sql = generate_sql(q, schema)
    print(f"\n📝 {q}")
    print(f"   SQL: {sql}")

九、阶段实战:AI 简历优化助手

综合本篇全部 Prompt Engineering 技巧,做一个简历分析工具。

# resume_optimizer.py —— 第三篇章毕业作品
import os
import json
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com"
)

# ─── 1. 读取简历 ───
def load_resume(filepath):
    """支持 .txt 和 .json"""
    with open(filepath, "r", encoding="utf-8") as f:
        if filepath.endswith(".json"):
            return json.dumps(json.load(f), ensure_ascii=False, indent=2)
        return f.read()


# ─── 2. 分析简历 ───
def analyze_resume(resume_text):
    """多维度分析,返回结构化 JSON"""
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{
            "role": "system",
            "content": "你是资深 HR + 技术面试官。只输出 JSON,不要加解释。"
        }, {
            "role": "user",
            "content": f"""分析以下简历,输出 JSON:

{{
  "summary": "一句话职业画像,不超过 30 字",
  "strengths": ["优势1", "优势2", "优势3"],
  "weaknesses": ["短板1", "短板2"],
  "score": 1-10 的整数(综合评分),
  "tech_stack": ["技术1", "技术2"],
  "keywords_missing": ["简历里缺但加分的关键词"],
  "suggestions": [
    {{"category": "排版/内容/技术/项目描述", "problem": "...", "fix": "..."}}
  ],
  "interview_questions": ["面试官可能问的问题1", "问题2"]
}}

简历:
{resume_text}"""
        }],
        temperature=0.3
    )
    raw = response.choices[0].message.content.strip()
    if raw.startswith("```"):
        raw = raw.split("\n", 1)[1].rsplit("\n```", 1)[0]
    return json.loads(raw)


# ─── 3. 格式化输出 ───
def print_report(analysis):
    """把 JSON 分析结果打印成可读报告"""
    print("\n" + "=" * 60)
    print(f"  📋 简历分析报告")
    print("=" * 60)
    
    print(f"\n👤 职业画像:{analysis['summary']}")
    print(f"⭐ 综合评分:{analysis['score']}/10")
    
    print(f"\n✅ 优势:")
    for s in analysis["strengths"]:
        print(f"   + {s}")
    
    print(f"\n⚠️  短板:")
    for w in analysis["weaknesses"]:
        print(f"   - {w}")
    
    print(f"\n🛠️  技术栈:{', '.join(analysis['tech_stack'])}")
    
    print(f"\n🔍 缺失关键词:{', '.join(analysis['keywords_missing'])}")
    
    print(f"\n📝 修改建议:")
    for i, sug in enumerate(analysis["suggestions"], 1):
        print(f"\n   {i}. [{sug['category']}]")
        print(f"      问题:{sug['problem']}")
        print(f"      建议:{sug['fix']}")
    
    print(f"\n🎯 预测面试问题:")
    for i, q in enumerate(analysis["interview_questions"], 1):
        print(f"   {i}. {q}")
    
    print("\n" + "=" * 60)


# ─── 4. 生成优化版简历 ───
def generate_optimized(resume_text, analysis):
    """基于分析结果生成优化版简历"""
    suggestions_text = "\n".join([
        f"- [{s['category']}] {s['problem']}{s['fix']}"
        for s in analysis["suggestions"]
    ])
    
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{
            "role": "user",
            "content": f"""你是一个专业的简历优化师。根据原始简历和分析建议,生成优化版简历。

原简历:
{resume_text}

修改建议:
{suggestions_text}

规则:
1. 保持真实性,不编造经历
2. 优化措辞,突出量化成果
3. 项目描述用 STAR 法则(情境-任务-行动-结果)
4. 排版清晰,适合直接复制使用
5. 用 Markdown 格式输出"""
        }],
        temperature=0.5
    )
    return response.choices[0].message.content


# ─── 主程序 ───
def main():
    print("=" * 60)
    print("  🎯 AI 简历优化助手 · 第三篇章毕业作品")
    print("=" * 60)
    
    # 示例简历(也可以让用户输入)
    sample_resume = """
个人简历

姓名:李明
学历:本科,计算机科学与技术,2026 年毕业
电话:138-0000-0000
邮箱:liming@example.com

技能:
Java、Python、MySQL、Spring Boot、Git

项目经历:
1. 学生管理系统
做了一个学生管理系统,可以对学生的信息进行增删改查,
用 Spring Boot 写的后端,前端用 Vue 做的。

2. 电商数据分析
用 Python 爬虫抓了一些商品数据,做了简单的分析,
画了几个图表展示价格分布。

实习经历:
2025.7-2025.10 在某科技公司实习
参与公司内部系统的开发和维护,写了一些接口。
"""
    
    print("\n📂 分析简历中...")
    analysis = analyze_resume(sample_resume)
    print_report(analysis)
    
    # 问用户要不要看优化版
    print("\n" + "=" * 60)
    choice = input("要生成优化版简历吗?(y/n):").strip().lower()
    if choice == 'y':
        print("\n⚙️  正在优化...")
        optimized = generate_optimized(sample_resume, analysis)
        print("\n" + "=" * 60)
        print("  ✨ 优化版简历")
        print("=" * 60)
        print(optimized)
        
        save = input("\n保存到文件?(y/n):").strip().lower()
        if save == 'y':
            with open("optimized_resume.md", "w", encoding="utf-8") as f:
                f.write(optimized)
            print("✅ 已保存到 optimized_resume.md")


if __name__ == "__main__":
    main()

运行效果

============================================================
  🎯 AI 简历优化助手 · 第三篇章毕业作品
============================================================

📂 分析简历中...

============================================================
  📋 简历分析报告
============================================================

👤 职业画像:计算机应届生,有基础 Java 开发和实习经验
⭐ 综合评分:4/10

✅ 优势:
   + 有实习经历,简历有实际工作内容
   + 技术栈覆盖前后端基础
   + 教育背景与求职方向匹配

⚠️  短板:
   - 项目描述过于简单,缺少量化数据
   - 技术栈描述不够深入,没有体现原理理解

🛠️  技术栈:Java, Python, MySQL, Spring Boot, Git, Vue

🔍 缺失关键词:Redis, Docker, Linux, 微服务, 项目难点, 性能优化

📝 修改建议:

   1. [项目描述]
      问题:学生管理系统描述太简略,"增删改查"体现不出技术深度
      建议:补充技术细节(用了 MyBatis Plus、异常处理、接口文档 Swagger)

   2. [项目描述]
      问题:电商数据分析没有量化成果
      建议:加上数据量(如"爬取 10000+ 条商品数据")、图表类型、分析结论

   3. [技术]
      问题:技能列表像流水账
      建议:按熟练度分层(熟练/了解),突出最擅长的 2-3 项

   4. [排版]
      问题:缺少求职意向、GitHub 链接
      建议:顶部加求职意向(Java 后端开发),附 GitHub 或个人网站

🎯 预测面试问题:
   1. 你实习期间最有挑战的一个需求是什么?怎么解决的?
   2. Spring Boot 的自动配置原理是什么?
   3. 学生管理系统的数据库表怎么设计的?为什么这样设计?
   4. 你的爬虫项目遇到过反爬吗?怎么处理的?

============================================================

本篇总结

知识点                  你学会了什么
─────────────────────────────────────────────
清晰指令                   角色 + 任务 + 约束 + 格式 + 示例 + 边界
Few-shot Prompting         给 1-2 个示例,AI 自动学会规律
Chain of Thought           让 AI 逐步推理,解数学题、做逻辑判断
结构化输出                 稳定输出 JSON / 表格,程序能解析
文本总结                   要点式、一句话、关键词、脑图四种风格
分类与情感分析             邮件分类、客服工单分类、评论正负面判断
代码生成                   自然语言 → SQL,准确率极高
实战                       简历分析 + 评分 + 建议 + 面试预测 + 优化版生成

下一篇预告

第四篇章:RAG 知识检索增强生成——文档加载 → 文本分块 → Embedding 向量化 → ChromaDB 向量数据库 → 检索 + 生成 → 构建完整的知识问答系统。大模型应用开发最核心的技术。


作业:把简历优化助手改成接收命令行参数——python resume_optimizer.py my_resume.txt,自动读取文件并输出分析报告。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐