当前位置:AIGC资讯 > AIGC > 正文

【Claude2体验】继ChatGPT,文心一言,Bing等大模型后,初次对话Claude2的体验

文章目录

?注意事项 ?什么是Claude2 ⭐与之前版本的进步 ?官网的讲解 ?功能介绍 ?使用体验 ?查看不知道如何才能打开的文档 的内容 ?日常需求 ✨Claude ✨ChatGPT3.5 ?总结

?专栏【小吉测评】
?喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。
?音乐分享【The Right Path】
?欢迎并且感谢大家指出小吉的问题

?注意事项

测评仅仅代表一部分,仅代表本人观点。

请到网盘中查看

Claude2使用注意事项

?什么是Claude2

Claude 2使用2023年初的新数据训练模型,是一名由人工智能公司Anthropic开发的虚拟助手。目的是成为一个有用的信息获取工具,可以自然地与人类用户进行交互,核心是一个具有深度学习和语言处理能力的大型AI系统。通过处理海量数据进行训练,可以解析人类语言,进行逻辑推理,并用人类可理解的语言作出回应。与许多过去的预设响应式chatbot不同,Claude可以进行真正的对话,会记住之前的交谈内容,保持上下文一致性。也会主动询问以获取对用户需求的更好理解。

⭐与之前版本的进步

1.扩大知识范围:训练的知识图谱更加广泛,涵盖更多领域的常识和事实,能够回答更广泛的话题。

2.提升语言处理能力:在理解语言表达和生成回复的能力上有所提升,可以进行更加顺畅、自然的对话。

3.增强多轮对话:可以进行更长时间的对话,每个回复之间可以保持上下文和连贯性。

4.提高安全性:训练更加负责任,通过技术手段降低生成有害内容的风险

5.优化悦耳性:语言风格更加友好、具有同理心,会用更悦耳的语言表达。

?官网的讲解

Claude 2 提高了性能,响应时间更长,Claude很容易交谈,清楚地解释了它的想法,不太可能产生有害的输出,并且记忆力更长。我们对以前的编码、数学和推理模型进行了改进。例如,我们的最新模型在律师考试的多项选择部分得分为 76.5%,高于 Claude 73.0 的 1.3%。与申请研究生院的大学生相比,Claude2 在 GRE 阅读和写作考试中的得分高于第 90 个百分位数,在定量推理方面与中位数申请人相似。

?功能介绍

Claude相比于ChatGPT,它们都可以阅读代码,修改代码,日常训练聊天等基础用处,但是Claude可以上传文档链接

能看出,总结得还是比较完美的

Claude目前还可以支持论文,而且根据Anthropic官方在论文中的说法,Claude 2其实是有支持200k上下文的潜力。目前虽然只支持100k,但是未来将会扩展到至少200k。

?使用体验

?查看不知道如何才能打开的文档 的内容

例如查看ini文件的内容
因为我不知道怎么打开ini文件,然后通过这个功能,我可以查看文件内容,这个功能感觉特别厉害

?日常需求

在写代码方面,感觉没有ChatGPT直接哈哈哈

✨Claude


//方块类
class Block {
  Shape shape;
  Color color; 
  int x, y;
}

//棋盘类 
class Board {
  Block grid[10][20]; 
}

//主循环
void MainLoop() {
  Tetris game;
  GUI gui;
  
  while (game.IsRunning()) {
    game.Update(); 
    
    gui.Render(game.GetBoard());
  }
}

Claude就给我写一个框架,其他的让我来补全

✨ChatGPT3.5

#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <conio.h>

using namespace std;

const int BOARD_WIDTH = 10;
const int BOARD_HEIGHT = 20;

class Tetris {
private:
    vector<vector<char>> board;
    int currentX, currentY;
    vector<vector<char>> currentPiece;

    vector<vector<char>> getRandomPiece() {
        vector<vector<char>> piece;
        int pieceType = rand() % 7;

        switch (pieceType) {
            case 0:  // I
                piece = {
                    {'#', '#', '#', '#'}
                };
                break;
            case 1:  // J
                piece = {
                    {'#', '.', '.'},
                    {'#', '#', '#'}
                };
                break;
            case 2:  // L
                piece = {
                    {'.', '.', '#'},
                    {'#', '#', '#'}
                };
                break;
            case 3:  // O
                piece = {
                    {'#', '#'},
                    {'#', '#'}
                };
                break;
            case 4:  // S
                piece = {
                    {'.', '#', '#'},
                    {'#', '#', '.'}
                };
                break;
            case 5:  // T
                piece = {
                    {'.', '#', '.'},
                    {'#', '#', '#'}
                };
                break;
            case 6:  // Z
                piece = {
                    {'#', '#', '.'},
                    {'.', '#', '#'}
                };
                break;
            default:
                break;
        }

        return piece;
    }

    bool isValidMove(int newX, int newY, const vector<vector<char>>& piece) {
        for (int i = 0; i < piece.size(); ++i) {
            for (int j = 0; j < piece[i].size(); ++j) {
                if (piece[i][j] == '#' &&
                    (newX + j < 0 || newX + j >= BOARD_WIDTH || newY + i >= BOARD_HEIGHT ||
                     (newY + i >= 0 && board[newY + i][newX + j] == '#'))) {
                    return false;
                }
            }
        }
        return true;
    }

    void placePieceOnBoard() {
        for (int i = 0; i < currentPiece.size(); ++i) {
            for (int j = 0; j < currentPiece[i].size(); ++j) {
                if (currentPiece[i][j] == '#') {
                    board[currentY + i][currentX + j] = '#';
                }
            }
        }
    }

    void clearFullRows() {
        for (int i = BOARD_HEIGHT - 1; i >= 0; --i) {
            bool fullRow = true;
            for (int j = 0; j < BOARD_WIDTH; ++j) {
                if (board[i][j] != '#') {
                    fullRow = false;
                    break;
                }
            }

            if (fullRow) {
                board.erase(board.begin() + i);
                board.insert(board.begin(), vector<char>(BOARD_WIDTH, '.'));
            }
        }
    }

public:
    Tetris() {
        srand(time(nullptr));
        board = vector<vector<char>>(BOARD_HEIGHT, vector<char>(BOARD_WIDTH, '.'));
        currentX = BOARD_WIDTH / 2;
        currentY = 0;
        currentPiece = getRandomPiece();
    }

    void run() {
        char input;
        bool gameover = false;

        while (!gameover) {
            displayBoard();
            input = _getch();

            switch (input) {
                case 'a':
                    if (isValidMove(currentX - 1, currentY, currentPiece)) {
                        currentX--;
                    }
                    break;
                case 'd':
                    if (isValidMove(currentX + 1, currentY, currentPiece)) {
                        currentX++;
                    }
                    break;
                case 's':
                    if (isValidMove(currentX, currentY + 1, currentPiece)) {
                        currentY++;
                    }
                    break;
                case 'q':
                    rotatePiece();
                    break;
                case 'x':
                    gameover = true;
                    break;
                default:
                    break;
            }

            if (isValidMove(currentX, currentY + 1, currentPiece)) {
                currentY++;
            } else {
                placePieceOnBoard();
                clearFullRows();

                currentX = BOARD_WIDTH / 2;
                currentY = 0;
                currentPiece = getRandomPiece();

                if (!isValidMove(currentX, currentY, currentPiece)) {
                    gameover = true;
                }
            }
        }

        cout << "Game Over!" << endl;
    }

    void displayBoard() {
        system("cls");
        for (int i = 0; i < BOARD_HEIGHT; ++i) {
            for (int j = 0; j < BOARD_WIDTH; ++j) {
                cout << board[i][j];
            }
            cout << endl;
        }
    }

    void rotatePiece() {
        vector<vector<char>> newPiece(currentPiece[0].size(), vector<char>(currentPiece.size(), '.'));

        for (int i = 0; i < currentPiece.size(); ++i) {
            for (int j = 0; j < currentPiece[i].size(); ++j) {
                newPiece[j][currentPiece.size() - 1 - i] = currentPiece[i][j];
            }
        }

        if (isValidMove(currentX, currentY, newPiece)) {
            currentPiece = newPiece;
        }
    }
};

int main() {
    Tetris game;
    game.run();
    return 0;
}

ChatGPT比较直接,把代码都给出了

?总结

总的来说,不论是ChatGPT还是Claude,都有其本身的优势,比如Claude可以提交链接,查看文档,ChatGPT写代码比较强等等等
本期测评仅仅代表一部分,不会以偏概全,仅代表本人观点,真正适合自己的,还需要大家自己来尝试

?如果大家有不明白的地方,或者文章有问题,欢迎大家在评论区讨论,指正?

更新时间 2023-11-10