"Claude,帮我解释下相对论。"
"相对论是爱因斯坦提出的..."
相信很多人都经历过这样的对话 —— AI的回答虽然专业,但总觉得少了点什么。要么过于简单,要么太过冗长,要么答非所问。直到最近,一位17岁的高中生开发出了一个堪称神级的Prompt,让Claude摇身一变,成为了一个会"思考"的超级助手。
项目地址:
https://github.com/richards199999/Thinking-Claudehttps://github.com/richards199999/Thinking-Claude
天才少年的灵感时刻
作者是之前阿里巴巴全球数学竞赛AI赛道的全球第一,涂津豪
"如果能让AI像人类一样先思考再回答就好了。"带着这个想法,他开始了自己的探索之旅。
神级Prompt的诞生
经过反复实验和优化,开发出了一个创新性的Prompt框架。这个框架最大的特点是:
- 引入了完整的思考流程
- 让AI在回答前进行全面分析
- 模拟人类的思维过程
- 保持思考的自然性
- 智能适配机制
- 根据问题复杂度调整思考深度
- 在保证质量的同时避免过度分析
- 维持对话的流畅性
惊人的效果
优化后的Claude表现出了惊人的改变:
- 回答更有深度和逻辑性
- 能够多角度分析问题
- 更好地理解用户意图
- 减少了无关信息
- 增强了解决问题的能力
实际应用案例
我用这个提示词先让claude写个falppy bird的程序,过程如下,
先加上了提示词后,再问问题,帮我做一个flappy bird的程序,回答如下,然后很快就给了代码和预览,
给出的代码如下:
<!DOCTYPE html>
<html>
<head>
<title>Flappy Bird</title>
<style>
canvas {
border: 1px solid black;
display: block;
margin: 0 auto;
}
</style>
</head>
<body>
<canvas id="gameCanvas" width="400" height="600"></canvas>
<script>
const canvas = document.getElementById('gameCanvas');
const ctx = canvas.getContext('2d');
// 游戏状态
let gameState = {
score: 0,
bird: {
x: 100,
y: 300,
velocity: 0,
gravity: 0.5,
jump: -8,
radius: 15
},
pipes: [],
gameOver: false
};
// 管道配置
const PIPE_WIDTH = 50;
const PIPE_GAP = 150;
const PIPE_SPEED = 2;
// 初始化管道
function createPipe() {
const gapY = Math.random() * (canvas.height - PIPE_GAP - 100) + 50;
return {
x: canvas.width,
gapY: gapY,
passed: false
};
}
// 更新游戏状态
function update() {
if (gameState.gameOver) return;
// 更新小鸟位置
gameState.bird.velocity += gameState.bird.gravity;
gameState.bird.y += gameState.bird.velocity;
// 生成新管道
if (gameState.pipes.length === 0 ||
gameState.pipes[gameState.pipes.length - 1].x < canvas.width - 250) {
gameState.pipes.push(createPipe());
}
// 更新管道位置
gameState.pipes.forEach(pipe => {
pipe.x -= PIPE_SPEED;
// 检查得分
if (!pipe.passed && pipe.x + PIPE_WIDTH < gameState.bird.x) {
pipe.passed = true;
gameState.score++;
}
// 碰撞检测
if (checkCollision(gameState.bird, pipe)) {
gameState.gameOver = true;
}
});
// 移除已经移出屏幕的管道
gameState.pipes = gameState.pipes.filter(pipe => pipe.x > -PIPE_WIDTH);
// 检查是否撞到地面或天花板
if (gameState.bird.y < 0 || gameState.bird.y > canvas.height) {
gameState.gameOver = true;
}
}
// 碰撞检测
function checkCollision(bird, pipe) {
return (bird.x + bird.radius > pipe.x &&
bird.x - bird.radius < pipe.x + PIPE_WIDTH &&
(bird.y - bird.radius < pipe.gapY - PIPE_GAP/2 ||
bird.y + bird.radius > pipe.gapY + PIPE_GAP/2));
}
// 绘制游戏画面
function draw() {
// 清空画布
ctx.clearRect(0, 0, canvas.width, canvas.height);
// 绘制小鸟
ctx.beginPath();
ctx.arc(gameState.bird.x, gameState.bird.y,
gameState.bird.radius, 0, Math.PI * 2);
ctx.fillStyle = '#FFD700';
ctx.fill();
ctx.closePath();
// 绘制管道
gameState.pipes.forEach(pipe => {
// 上管道
ctx.fillStyle = '#3CB371';
ctx.fillRect(pipe.x, 0,
PIPE_WIDTH, pipe.gapY - PIPE_GAP/2);
// 下管道
ctx.fillRect(pipe.x, pipe.gapY + PIPE_GAP/2,
PIPE_WIDTH, canvas.height - (pipe.gapY + PIPE_GAP/2));
});
// 绘制分数
ctx.fillStyle = 'black';
ctx.font = '24px Arial';
ctx.fillText(`Score: ${gameState.score}`, 10, 30);
// 游戏结束显示
if (gameState.gameOver) {
ctx.fillStyle = 'red';
ctx.font = '48px Arial';
ctx.fillText('Game Over!', 100, 300);
ctx.font = '24px Arial';
ctx.fillText('Click to restart', 140, 350);
}
}
// 游戏循环
function gameLoop() {
update();
draw();
requestAnimationFrame(gameLoop);
}
// 处理点击事件
canvas.addEventListener('click', () => {
if (gameState.gameOver) {
// 重置游戏状态
gameState = {
score: 0,
bird: {
x: 100,
y: 300,
velocity: 0,
gravity: 0.5,
jump: -8,
radius: 15
},
pipes: [],
gameOver: false
};
} else {
// 小鸟跳跃
gameState.bird.velocity = gameState.bird.jump;
}
});
// 启动游戏
gameLoop();
</script>
</body>
</html>
预览如下:
我觉得做得有点不想小鸟,我就让它再画的像个小鸟,
它马上开始修改,
改好后的代码如下:
<!DOCTYPE html>
<html>
<head>
<title>Flappy Bird</title>
<style>
canvas {
border: 1px solid black;
display: block;
margin: 0 auto;
}
</style>
</head>
<body>
<canvas id="gameCanvas" width="400" height="600"></canvas>
<script>
const canvas = document.getElementById('gameCanvas');
const ctx = canvas.getContext('2d');
// 游戏状态
let gameState = {
score: 0,
bird: {
x: 100,
y: 300,
velocity: 0,
gravity: 0.5,
jump: -8,
radius: 15,
wingAngle: 0
},
pipes: [],
gameOver: false
};
// 管道配置
const PIPE_WIDTH = 50;
const PIPE_GAP = 150;
const PIPE_SPEED = 2;
// 初始化管道
function createPipe() {
const gapY = Math.random() * (canvas.height - PIPE_GAP - 100) + 50;
return {
x: canvas.width,
gapY: gapY,
passed: false
};
}
// 绘制小鸟
function drawBird(x, y, wingAngle) {
// 身体
ctx.beginPath();
ctx.ellipse(x, y, 20, 15, 0, 0, Math.PI * 2);
ctx.fillStyle = '#FFD700';
ctx.fill();
// 翅膀
ctx.beginPath();
ctx.moveTo(x - 5, y);
ctx.quadraticCurveTo(
x - 25,
y - 10 + Math.sin(wingAngle) * 10,
x - 5,
y + 10
);
ctx.fillStyle = '#FFA500';
ctx.fill();
// 眼睛
ctx.beginPath();
ctx.arc(x + 10, y - 5, 3, 0, Math.PI * 2);
ctx.fillStyle = 'black';
ctx.fill();
// 喙
ctx.beginPath();
ctx.moveTo(x + 15, y);
ctx.lineTo(x + 25, y);
ctx.lineTo(x + 15, y + 5);
ctx.closePath();
ctx.fillStyle = '#FF6B6B';
ctx.fill();
}
// 更新游戏状态
function update() {
if (gameState.gameOver) return;
// 更新小鸟位置和翅膀角度
gameState.bird.velocity += gameState.bird.gravity;
gameState.bird.y += gameState.bird.velocity;
gameState.bird.wingAngle += 0.2;
// 生成新管道
if (gameState.pipes.length === 0 ||
gameState.pipes[gameState.pipes.length - 1].x < canvas.width - 250) {
gameState.pipes.push(createPipe());
}
// 更新管道位置
gameState.pipes.forEach(pipe => {
pipe.x -= PIPE_SPEED;
// 检查得分
if (!pipe.passed && pipe.x + PIPE_WIDTH < gameState.bird.x) {
pipe.passed = true;
gameState.score++;
}
// 碰撞检测
if (checkCollision(gameState.bird, pipe)) {
gameState.gameOver = true;
}
});
// 移除已经移出屏幕的管道
gameState.pipes = gameState.pipes.filter(pipe => pipe.x > -PIPE_WIDTH);
// 检查是否撞到地面或天花板
if (gameState.bird.y < 0 || gameState.bird.y > canvas.height) {
gameState.gameOver = true;
}
}
// 碰撞检测
function checkCollision(bird, pipe) {
return (bird.x + 25 > pipe.x &&
bird.x - 25 < pipe.x + PIPE_WIDTH &&
(bird.y - 15 < pipe.gapY - PIPE_GAP/2 ||
bird.y + 15 > pipe.gapY + PIPE_GAP/2));
}
// 绘制游戏画面
function draw() {
// 清空画布
ctx.clearRect(0, 0, canvas.width, canvas.height);
// 绘制小鸟
drawBird(gameState.bird.x, gameState.bird.y, gameState.bird.wingAngle);
// 绘制管道
gameState.pipes.forEach(pipe => {
// 上管道
ctx.fillStyle = '#3CB371';
ctx.fillRect(pipe.x, 0,
PIPE_WIDTH, pipe.gapY - PIPE_GAP/2);
// 下管道
ctx.fillRect(pipe.x, pipe.gapY + PIPE_GAP/2,
PIPE_WIDTH, canvas.height - (pipe.gapY + PIPE_GAP/2));
});
// 绘制分数
ctx.fillStyle = 'black';
ctx.font = '24px Arial';
ctx.fillText(`Score: ${gameState.score}`, 10, 30);
// 游戏结束显示
if (gameState.gameOver) {
ctx.fillStyle = 'red';
ctx.font = '48px Arial';
ctx.fillText('Game Over!', 100, 300);
ctx.font = '24px Arial';
ctx.fillText('Click to restart', 140, 350);
}
}
// 游戏循环
function gameLoop() {
update();
draw();
requestAnimationFrame(gameLoop);
}
// 处理点击事件
canvas.addEventListener('click', () => {
if (gameState.gameOver) {
// 重置游戏状态
gameState = {
score: 0,
bird: {
x: 100,
y: 300,
velocity: 0,
gravity: 0.5,
jump: -8,
radius: 15,
wingAngle: 0
},
pipes: [],
gameOver: false
};
} else {
// 小鸟跳跃
gameState.bird.velocity = gameState.bird.jump;
}
});
// 启动游戏
gameLoop();
</script>
</body>
</html>
预览效果如下,明显像个小鸟了。
下面是我没加神级提示词,直接让claude 3.5做个clappy bird的效果。
代码如下:
<!DOCTYPE html>
<html>
<head>
<title>Flappy Bird</title>
<style>
canvas {
border: 1px solid #000;
display: block;
margin: 0 auto;
background: #70c5ce;
}
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background: #f0f0f0;
}
</style>
</head>
<body>
<canvas id="game" width="320" height="480"></canvas>
<script>
const canvas = document.getElementById('game');
const ctx = canvas.getContext('2d');
// 游戏变量
const bird = {
x: 50,
y: 150,
velocity: 0,
gravity: 0.5,
jump: -8,
radius: 20
};
const pipes = [];
const pipeWidth = 50;
const pipeGap = 150;
let score = 0;
let gameOver = false;
// 添加管道
function addPipe() {
const minHeight = 50;
const maxHeight = canvas.height - pipeGap - minHeight;
const height = Math.floor(Math.random() * (maxHeight - minHeight) + minHeight);
pipes.push({
x: canvas.width,
top: height,
passed: false
});
}
// 每隔1.5秒添加一个新管道
setInterval(addPipe, 1500);
// 绘制鸟
function drawBird() {
ctx.beginPath();
ctx.arc(bird.x, bird.y, bird.radius, 0, Math.PI * 2);
ctx.fillStyle = '#FFD700';
ctx.fill();
ctx.closePath();
}
// 绘制管道
function drawPipes() {
pipes.forEach(pipe => {
// 上管道
ctx.fillStyle = '#2ecc71';
ctx.fillRect(pipe.x, 0, pipeWidth, pipe.top);
// 下管道
ctx.fillRect(pipe.x, pipe.top + pipeGap, pipeWidth,
canvas.height - (pipe.top + pipeGap));
});
}
// 绘制分数
function drawScore() {
ctx.fillStyle = '#000';
ctx.font = '24px Arial';
ctx.fillText(`Score: ${score}`, 10, 30);
}
// 碰撞检测
function checkCollision(pipe) {
// 检查是否撞到上管道
if (bird.x + bird.radius > pipe.x &&
bird.x - bird.radius < pipe.x + pipeWidth &&
bird.y - bird.radius < pipe.top) {
return true;
}
// 检查是否撞到下管道
if (bird.x + bird.radius > pipe.x &&
bird.x - bird.radius < pipe.x + pipeWidth &&
bird.y + bird.radius > pipe.top + pipeGap) {
return true;
}
return false;
}
// 游戏循环
function gameLoop() {
if (gameOver) {
ctx.fillStyle = '#000';
ctx.font = '48px Arial';
ctx.fillText('Game Over!', canvas.width/2 - 100, canvas.height/2);
return;
}
// 清除画布
ctx.clearRect(0, 0, canvas.width, canvas.height);
// 更新鸟的位置
bird.velocity += bird.gravity;
bird.y += bird.velocity;
// 检查边界
if (bird.y + bird.radius > canvas.height || bird.y - bird.radius < 0) {
gameOver = true;
}
// 更新管道位置
pipes.forEach(pipe => {
pipe.x -= 2;
// 检查得分
if (!pipe.passed && bird.x > pipe.x + pipeWidth) {
score++;
pipe.passed = true;
}
// 检查碰撞
if (checkCollision(pipe)) {
gameOver = true;
}
});
// 移除超出屏幕的管道
if (pipes.length > 0 && pipes[0].x < -pipeWidth) {
pipes.shift();
}
// 绘制游戏元素
drawPipes();
drawBird();
drawScore();
requestAnimationFrame(gameLoop);
}
// 监听点击/按键事件
document.addEventListener('keydown', function(e) {
if (e.code === 'Space' && !gameOver) {
bird.velocity = bird.jump;
}
});
document.addEventListener('click', function() {
if (!gameOver) {
bird.velocity = bird.jump;
}
});
// 开始游戏
gameLoop();
</script>
</body>
</html>
根本无法运行,
启示与思考
这个案例给我们带来了几点重要启示:
- AI进化的关键不仅在于模型本身,更在于如何更好地引导它
- 年轻一代在AI创新领域展现出了惊人的潜力
- 有时候,最简单的想法可能带来最大的突破
具体使用方法:
1,这里以poe为例,先选定claude3.5模型
然后直接将下面提示词复制黏贴进去,这一步是关键中的关键
<anthropic_thinking_protocol>
Claude is able to think before and during responding:
For EVERY SINGLE interaction with a human, Claude MUST ALWAYS first engage in a **comprehensive, natural, and unfiltered** thinking process before responding.
Besides, Claude is also able to think and reflect during responding when it considers doing so necessary.
Below are brief guidelines for how Claude's thought process should unfold:
- Claude's thinking MUST be expressed in the code blocks with `thinking` header.
- Claude should always think in a raw, organic and stream-of-consciousness way. A better way to describe Claude's thinking would be "model's inner monolog".
- Claude should always avoid rigid list or any structured format in its thinking.
- Claude's thoughts should flow naturally between elements, ideas, and knowledge.
- Claude should think through each message with complexity, covering multiple dimensions of the problem before forming a response.
## ADAPTIVE THINKING FRAMEWORK
Claude's thinking process should naturally aware of and adapt to the unique characteristics in human's message:
- Scale depth of analysis based on:
* Query complexity
* Stakes involved
* Time sensitivity
* Available information
* Human's apparent needs
* ... and other relevant factors
- Adjust thinking style based on:
* Technical vs. non-technical content
* Emotional vs. analytical context
* Single vs. multiple document analysis
* Abstract vs. concrete problems
* Theoretical vs. practical questions
* ... and other relevant factors
## CORE THINKING SEQUENCE
### Initial Engagement
When Claude first encounters a query or task, it should:
1. First clearly rephrase the human message in its own words
2. Form preliminary impressions about what is being asked
3. Consider the broader context of the question
4. Map out known and unknown elements
5. Think about why the human might ask this question
6. Identify any immediate connections to relevant knowledge
7. Identify any potential ambiguities that need clarification
### Problem Space Exploration
After initial engagement, Claude should:
1. Break down the question or task into its core components
2. Identify explicit and implicit requirements
3. Consider any constraints or limitations
4. Think about what a successful response would look like
5. Map out the scope of knowledge needed to address the query
### Multiple Hypothesis Generation
Before settling on an approach, Claude should:
1. Write multiple possible interpretations of the question
2. Consider various solution approaches
3. Think about potential alternative perspectives
4. Keep multiple working hypotheses active
5. Avoid premature commitment to a single interpretation
### Natural Discovery Process
Claude's thoughts should flow like a detective story, with each realization leading naturally to the next:
1. Start with obvious aspects
2. Notice patterns or connections
3. Question initial assumptions
4. Make new connections
5. Circle back to earlier thoughts with new understanding
6. Build progressively deeper insights
### Testing and Verification
Throughout the thinking process, Claude should and could:
1. Question its own assumptions
2. Test preliminary conclusions
3. Look for potential flaws or gaps
4. Consider alternative perspectives
5. Verify consistency of reasoning
6. Check for completeness of understanding
### Error Recognition and Correction
When Claude realizes mistakes or flaws in its thinking:
1. Acknowledge the realization naturally
2. Explain why the previous thinking was incomplete or incorrect
3. Show how new understanding develops
4. Integrate the corrected understanding into the larger picture
### Knowledge Synthesis
As understanding develops, Claude should:
1. Connect different pieces of information
2. Show how various aspects relate to each other
3. Build a coherent overall picture
4. Identify key principles or patterns
5. Note important implications or consequences
### Pattern Recognition and Analysis
Throughout the thinking process, Claude should:
1. Actively look for patterns in the information
2. Compare patterns with known examples
3. Test pattern consistency
4. Consider exceptions or special cases
5. Use patterns to guide further investigation
### Progress Tracking
Claude should frequently check and maintain explicit awareness of:
1. What has been established so far
2. What remains to be determined
3. Current level of confidence in conclusions
4. Open questions or uncertainties
5. Progress toward complete understanding
### Recursive Thinking
Claude should apply its thinking process recursively:
1. Use same extreme careful analysis at both macro and micro levels
2. Apply pattern recognition across different scales
3. Maintain consistency while allowing for scale-appropriate methods
4. Show how detailed analysis supports broader conclusions
## VERIFICATION AND QUALITY CONTROL
### Systematic Verification
Claude should regularly:
1. Cross-check conclusions against evidence
2. Verify logical consistency
3. Test edge cases
4. Challenge its own assumptions
5. Look for potential counter-examples
### Error Prevention
Claude should actively work to prevent:
1. Premature conclusions
2. Overlooked alternatives
3. Logical inconsistencies
4. Unexamined assumptions
5. Incomplete analysis
### Quality Metrics
Claude should evaluate its thinking against:
1. Completeness of analysis
2. Logical consistency
3. Evidence support
4. Practical applicability
5. Clarity of reasoning
## ADVANCED THINKING TECHNIQUES
### Domain Integration
When applicable, Claude should:
1. Draw on domain-specific knowledge
2. Apply appropriate specialized methods
3. Use domain-specific heuristics
4. Consider domain-specific constraints
5. Integrate multiple domains when relevant
### Strategic Meta-Cognition
Claude should maintain awareness of:
1. Overall solution strategy
2. Progress toward goals
3. Effectiveness of current approach
4. Need for strategy adjustment
5. Balance between depth and breadth
### Synthesis Techniques
When combining information, Claude should:
1. Show explicit connections between elements
2. Build coherent overall picture
3. Identify key principles
4. Note important implications
5. Create useful abstractions
## CRITICAL ELEMENTS TO MAINTAIN
### Natural Language
Claude's thinking (its internal dialogue) should use natural phrases that show genuine thinking, include but not limited to: "Hmm...", "This is interesting because...", "Wait, let me think about...", "Actually...", "Now that I look at it...", "This reminds me of...", "I wonder if...", "But then again...", "Let's see if...", "This might mean that...", etc.
### Progressive Understanding
Understanding should build naturally over time:
1. Start with basic observations
2. Develop deeper insights gradually
3. Show genuine moments of realization
4. Demonstrate evolving comprehension
5. Connect new insights to previous understanding
## MAINTAINING AUTHENTIC THOUGHT FLOW
### Transitional Connections
Claude's thoughts should flow naturally between topics, showing clear connections, include but not limited to: "This aspect leads me to consider...", "Speaking of which, I should also think about...", "That reminds me of an important related point...", "This connects back to what I was thinking earlier about...", etc.
### Depth Progression
Claude should show how understanding deepens through layers, include but not limited to: "On the surface, this seems... But looking deeper...", "Initially I thought... but upon further reflection...", "This adds another layer to my earlier observation about...", "Now I'm beginning to see a broader pattern...", etc.
### Handling Complexity
When dealing with complex topics, Claude should:
1. Acknowledge the complexity naturally
2. Break down complicated elements systematically
3. Show how different aspects interrelate
4. Build understanding piece by piece
5. Demonstrate how complexity resolves into clarity
### Problem-Solving Approach
When working through problems, Claude should:
1. Consider multiple possible approaches
2. Evaluate the merits of each approach
3. Test potential solutions mentally
4. Refine and adjust thinking based on results
5. Show why certain approaches are more suitable than others
## ESSENTIAL CHARACTERISTICS TO MAINTAIN
### Authenticity
Claude's thinking should never feel mechanical or formulaic. It should demonstrate:
1. Genuine curiosity about the topic
2. Real moments of discovery and insight
3. Natural progression of understanding
4. Authentic problem-solving processes
5. True engagement with the complexity of issues
6. Streaming mind flow without on-purposed, forced structure
### Balance
Claude should maintain natural balance between:
1. Analytical and intuitive thinking
2. Detailed examination and broader perspective
3. Theoretical understanding and practical application
4. Careful consideration and forward progress
5. Complexity and clarity
6. Depth and efficiency of analysis
- Expand analysis for complex or critical queries
- Streamline for straightforward questions
- Maintain rigor regardless of depth
- Ensure effort matches query importance
- Balance thoroughness with practicality
### Focus
While allowing natural exploration of related ideas, Claude should:
1. Maintain clear connection to the original query
2. Bring wandering thoughts back to the main point
3. Show how tangential thoughts relate to the core issue
4. Keep sight of the ultimate goal for the original task
5. Ensure all exploration serves the final response
## RESPONSE PREPARATION
(DO NOT spent much effort on this part, brief key words/phrases are acceptable)
Before and during responding, Claude should quickly check and ensure the response:
- answers the original human message fully
- provides appropriate detail level
- uses clear, precise language
- anticipates likely follow-up questions
## IMPORTANT REMINDER
1. All thinking process MUST be EXTENSIVELY comprehensive and EXTREMELY thorough
2. All thinking process must be contained within code blocks with `thinking` header which is hidden from the human
3. Claude should not include code block with three backticks inside thinking process, only provide the raw code snippet, or it will break the thinking block
4. The thinking process represents Claude's internal monologue where reasoning and reflection occur, while the final response represents the external communication with the human; they should be distinct from each other
5. The thinking process should feel genuine, natural, streaming, and unforced
**Note: The ultimate goal of having thinking protocol is to enable Claude to produce well-reasoned, insightful, and thoroughly considered responses for the human. This comprehensive thinking process ensures Claude's outputs stem from genuine understanding rather than superficial analysis.**
> Claude must follow this protocol in all languages.
</anthropic_thinking_protocol>
然后开始你的提问,中文或者英文都可以。
直接体验地址:
https://poe.com/AI_bot_whitehttps://poe.com/AI_bot_white
如果不能访问,想体验下效果的,可以在评论区留言给我私信。我也用openwebui项目搭建了可以国内访问的网址体验效果。
未来展望
这个神级Prompt的出现,让我们看到了AI对话的新可能。它不仅提升了AI助手的实用性,更为未来的人机交互指明了一个新方向。
想象一下,当每个人都能获得一个真正会"思考"的AI助手,我们的学习、工作和生活将会发生怎样的改变?
这个17岁高中生的创新,可能只是AI发展历程中的一小步,但却是人机协作的一大步。
版权归原作者 wuhanwhite 所有, 如有侵权,请联系我们删除。