반응형

[출처]

https://youtu.be/Uc7md60uAKM

1. Vscode에서 AICodeHelper 설치하고 셋팅

  - ChatGpt api key 받고 AICodeHelper 설정

2. AICodeHelper 기본적인 사용법

  - 프로그램 영역 설정하고 컨트롤 알트 쉬프트 콤마 눌러서 입력창에 요청사항 입력하기

  - 단축키로 미리 설정된 프롬프트 활용 : 코드 리뷰, 코드주석달기, 코드의 오류 수정, 만들고 싶은 것에 대한 묘사를 기반으로 코드 생성, 변수이름 작명, 코드 리팩토링

3. ChatGpt api 사용법

  - 원하는 출력을 위한 프롬프트 방식

  - 원하는 출력을 위한 퓨샷러닝 방식

 

<!DOCTYPE html>
<html>

<head>
    <title>여러줄 쓰는 입력란</title>
    <style>
        body {
            background-color: black;
            color: white;
            font-size: 20px;
            font-family: Arial, sans-serif;
        }

        input[type="submit"] {
            background-color: #3498db;
            color: white;
            font-size: 16px;
            padding: 8px 16px;
            border: none;
            border-radius: 4px;
            cursor: pointer;
        }
    </style>
</head>

<body>
    <form>
        <textarea id="myInput" rows="5" cols="50"></textarea>
        <br><br>
        <input type="button" value="색 추천 요청" onclick="displayInput()">
        <br><br>
        <div id="output"></div>
    </form>

    <script>
    const chatGPT = async (messages, parameters = {}) => {
        const apikey = 'API-KEY';
        // messages가 문자열인 경우 배열로 변환
        if (messages[0].constructor === String) return await chatGPT([['user', messages[0]]]);
        // messages 배열의 요소들을 role과 content 속성을 가진 객체로 변환
        messages = messages.map(line => ({ role: line[0], content: line[1].trim() }))
        console.log(1)
        // OpenAI API에 요청을 보내기 위한 fetch 함수 호출
        const response = await fetch('https://api.openai.com/v1/chat/completions', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${apikey}` },
            body: JSON.stringify({ model: 'gpt-3.5-turbo', messages, ...parameters }),
        });
        // 응답 데이터를 json 형태로 변환
        const data = await response.json();
        // 에러가 발생한 경우 에러 메시지 출력
        if (data?.error?.message) throw new Error(data.error.message);
        // OpenAI API에서 반환한 응답 데이터에서 추천 색상 코드와 이유를 추출하여 반환
        return data.choices[0].message.content.trim();
    };

    async function displayInput() {
        // 입력된 텍스트를 가져와서 불필요한 공백 제거
        var input = document.getElementById("myInput").value.trim();
        // 입력된 텍스트가 없는 경우 알림 메시지 출력
        if (!input) alert('묘사해주세요')
        // 입력된 텍스트를 OpenAI API에서 인식할 수 있는 형태로 변환
        input = `DESC::${input}`
        console.log(input)
        let response
        try {
            // OpenAI API에 요청을 보내서 추천 색상 코드와 이유를 가져옴
            response = await chatGPT([
                ['system', `The assistant's job is to recommend color codes that match what user's describing. Response JSONArray like ["","",...]. reasonForRecommendation to be in korean. Return only JSON Array. Remove pre-text and post-text.`],
                ['user', 'DESC::맛있는 딸기'],
                ['assistant', '{"reasonForRecommendation":"..","colorlist":["#000000","#000000","#000000","#000000","#000000"]}'],
                ['user', 'DESC::우거진 숲속의 소나무'],
                ['assistant', '{"reasonForRecommendation":"...","colorlist":["#000000","#000000","#000000","#000000","#000000"]}'],
                ['user', 'DESC::드넓은 사막의 모래'],
                ['assistant', '{"reasonForRecommendation":"....","colorlist":["#000000","#000000","#000000","#000000","#000000"]}'],
                ['user', input],
            ], { temperature: 0.8 })
        } catch (e) {
            // 에러가 발생한 경우 콘솔에 에러 메시지 출력
            console.log(e.message)
            return;
        }

        // 추천 색상 코드와 이유를 출력할 요소를 가져옴
        var outputText = document.getElementById("output");
        console.log(response)
        // OpenAI API에서 반환한 JSON 형태의 응답 데이터를 객체로 변환
        const color = JSON.parse(response);
        // 추천 색상 코드를 출력할 div 요소를 생성하여 색상을 적용하고 출력할 요소에 추가
        for (let i = 0; i < color.colorlist.length; i++) {
            const divElem = document.createElement('div');
            divElem.style.backgroundColor = color.colorlist[i];
            divElem.textContent = color.colorlist[i];
            outputText.appendChild(divElem);
        }
        // 추천 이유를 출력할 div 요소를 생성하여 출력할 요소에 추가
        const divElem = document.createElement('div');
        divElem.textContent = color.reasonForRecommendation
        outputText.appendChild(divElem);
    };

    </script>
</body>

</html>

반응형
반응형

- GPT-3에서 원하는 결과를 얻기 위해 적절한 프롬프트가 필요하다. 프롬프트 엔지니어링

- 사람의 생각도 비슷하다. 언어로 생각을 유도할 수 있다.


https://youtu.be/tZoJb3e6LPo


[출처] https://blog.naver.com/allbareunkr/222852267626

 

GPT-3에 대한 종합적인 이해

2020년 5월, OpenAI는 <Language Models Are Few-Shot Learners>라는 혁신적인 논문을 발표...

blog.naver.com

 

- 좋은 프롬프팅의 중요성

  • 프롬프트 : 필요한 output을 만들기 위해 샘플 트리거를 제공해야 합니다. 이 트리거를 GPT-3에서는 프롬프트라고 합니다. AI가 해결하고자 하는 문제의 맥락을 파악할 수 있도록 제공하는 파라미터입니다.이미지, 텍스트 형태의 힌트라고 생각하셔도 될 듯 합니다.

[출처]  https://m.blog.naver.com/jjcpa/221983698349

 

 

신경언어 프로그래밍(Neuro-Linguistic Programming, NLP)

정의(개념)   1. NLP는 20세기에 개발된 실용심리학의 한 분야로 인간 행동의 긍정적인 변화를 이...

blog.naver.com

NLP의 원리는,

첫째, 먼저 자신과 라포를 형성하고 다음으로 타인과의 라포를 형성한다.

둘째, 자신이 달성하고자 하는 바, 즉 목표를 파악한다.

셋째, 감각기관을 통하여 자신의 행동을 이해하고 나은 방향으로 나아간다.

넷째, 여러 행동 대안을 염두에 두고 선택하여 행동하는 행동적 융통성을 갖는다.

 

라포[rapport]

상담이나 교육을 위한 전제로 신뢰와 친근감으로 이루어진 인간관계이다. 상담, 치료, 교육 등은 특성상 상호협조가 중요한데 라포는 이를 충족시켜주는 동인(動因)이 된다. 라포를 형성하기 위해서는 타인의 감정, 사고, 경험을 이해할 수 있는 공감대 형성을 위하여 노력하여야 한다. 따라서 효과적인 장애 학생 교육이나 부모 상담을 위해서는 라포의 형성이 무엇보다 중요하다. (특수교육학 용어사전, 2009., 국립특수교육원)

 

NLP의 전제는 다음 열여섯 가지로 제시할 수 있다.


첫째, 지도는 영토가 아니다. 사람들은 현실 그 자체가 아닌 자신이 가지고 있는 실재에 대한 지도에 반응한다. 지도는 영토를 편리하게 그려 놓은 것으로서 인간은 (**자신의)지도에 따라서 움직이고 의사소통을 한다. , NLP는 현실 자체가 아닌 그것을 반영하는 지도를 변화시키는 기술이다.

 

둘째, 인간의 행동은 목적 지향적이다. 인간은 목적이 무엇인지 항상 의식하면서 행동하는 것은 아니지만 행동의 이면에는 어떤 목적이 존재한다.

 

셋째, 의사소통에서 전달하고자 하는 의미는 상대방으로부터 내가 얻는 반응에 의해 결정된다. 따라서 의사소통을 제대로 하는지의 문제는 상대방으로부터 원하는 반응을 얻었는가의 문제와 직결된다. 우리가 하는 말은 의도와 다르게 전달될 수 있지만 그렇다고 실패는 아니며 단지 상대방에게서 어떤 반응과 피드백을 얻는 것뿐이다.

 

넷째, 경험은 일정한 구조로 구성된다. 우리의 사고와 기억은 나름의 일정한 패턴으로 이루어진다. 그 구조나 패턴을 바꾸면 경험의 내용 또한 바뀐다. 예를 들어, 나쁜 기억은 불쾌한 시각적 장면이나 청각적 소리 및 나쁜 감정을 일으키는 내용의 구조로 이루어진다. 그러므로 그 장면을 좋은 것으로, 소리를 좋은 것으로, 좋은 감정을 일으키는 내용으로 구조를 바꾸면 기억도 변화될 수 있다.

 

다섯째, 모든 행동은 좋은 의도에서 나온다. 우리의 행동은 언제나 우리에게 가치 있는 무엇인가를 성취하기 위해 나온다. NLP에서는 행위 그 자체와 그 행위 뒤에 있는 의도나 목적을 구분한다. 어떤 행동이 부정적으로 보이는 것은 우리가 그 행동의 목적을 알지 못하기 때문이다.

 

여섯째, 마음과 몸은 하나의 체계이며 서로 영향을 주고받는다. 다른 하나에 영향을 주지 않고 변화시키는 것은 불가능하다.

 

일곱째, 사람은 그 당시에 할 수 있는 가장 최선의 선택을 한다. 아무리 파괴적이고 악한 행동이라 해도 그것은 그 사람이 자신에게 주어진 세상에 대한 지도 혹은 모형으로 당시에 할 수 있는 최선의 선택을 한 결과다. 그의 세상모형 혹은 지도에서 더 나은 선택을 할 수 있는 선택권을 부여한다면 그는 그것을 받아들일 것이다.

 

여덟째, 사람들은 자기 나름으로는 완벽하게 일한다. 어느 누구에게도 잘 못한다거나 서투르다고 말할 수 없다. 중요한 것은 그들이 어떤 방식으로 행동하는지 알아내어 그 방법을 보다 유익하고 바람직한 방향으로 변화시키는 것이다.

(**기억력이 없어서 일을 잘 못한다면 기억력을 향상시키면 된다? 아직 이해가 안 되는군)

 

아홉째, 실패란 없고 단지 피드백(배움)이 있을 뿐이다.

 

열째, 배움은 살아 있다는 증거이며 우리는 배우지 않을 수 없다.

 

열한째, 우리에게는 필요한 모든 자원이 이미 있거나 새롭게 창조할 수 있다. 자원이 없는 사람은 없으며, 다만 자원이 없는 상태가 있을 뿐이다.

(**기억력이 없다면 새롭게 보충할 수 있나? 오메가3?)

 

열두째, 어떤 사람이 무엇인가 할 수 있다면 다른 사람도 그것을 배워 행할 수 있다. 탁월성은 복제가 가능하며 탁월성을 모방하고 그것을 다른 사람에게 가르칠 수 있다. 인간은 성공적인 성취를 모방함으로써 탁월성을 달성할 수 있다.

(**기억력이 없다면 기억력이 탁월한 사람을 모방할 수 있나? 내가 말꼬리 잡는군.)

 

열셋째, 선택할 수 있다는 것은 선택할 수 없는 것보다 바람직하다. 가능하면 광범위하게 여러 가지 선택을 할 수 있는 자신의 지도를 찾는 것이 중요하다. 항상 선택의 폭을 넓히고 가장 많은 선택, 즉 가장 유연한 사고와 행동을 하는 사람이 모든 상호작용에서 가장 큰 영향력을 미치게 된다.

 

열넷째, 무의식은 선한 의도를 가지고 있다. 무의식은 의식의 균형을 잡아주며 본래 악의적인 것이 아니고 선의적이다.

(**무의식이 선한 의도를 가진다? 무의식의 의도를? 그냥 무의식의 속성은 선하다겠지. 그리고 선하다고? 무슨 의도로 이런 前提를 하는지 모르겠다.- 이섬백은 전제조건이란 진리가 아니라 바람직한 결과를 얻기 위해 사실인것 처럼 받아들이는 명제란다. 그렇다면 전제가 아니라 가정이라고 해야.)

 

열다섯째, 이해하기를 원한다면 실행해야 한다. 인간은 행동을 하고 나서 그것을 이해하게 되고 행동의 결과로 배우는 경우가 많다.

 

열여섯째, 인간은 감각을 통하여 모든 정보를 처리한다. 이러한 전제를 바탕으로 한 NLP의 전략은 크게 메타 모형(meta-model), 라포 형성, 해결 지향적 행동패턴의 관점바꾸기, 앵커 충돌, 표상체계와 빈사(서술, 단언), 모델링 등이다.

반응형

'생각' 카테고리의 다른 글

싱크 어게인(Think Again)  (1) 2024.02.27
아비투스  (0) 2023.01.24
퍼스널 브랜딩  (0) 2022.12.27
집중과 몰입  (1) 2022.12.14
감정 훈련  (0) 2022.12.13
반응형

오늘은 한참 동안 chat-gpt(https://chat.openai.com/)와 대화를 나누었다.

 

그리고 그 대화 중 일부분으로 블로그 글을 올린다. ^^

 

gpt로 글쓰기


글쓰기로 돈 많이 벌 수 있나? 그리고 구체적인 방법은?

 

 

- 글쓰기로 돈 많이 벌 수 있나? 그리고 구체적인 방법은?

글쓰기로 많은 돈을 벌 수 있다는 것은 사실입니다. 그러나 글쓰기 자체는 수익을 창출할 수 있는 업종 중 하나일 뿐, 수익을 창출하기 위해서는 여러가지 요소가 조합되어야 합니다.

글쓰기로 수익을 창출하는 구체적인 방법은 아래와 같습니다.

재능과 소질을 갖춘 글쓰기를 시작합니다. 재능은 자연스러운 재미있고 정교한 언어사용력, 소질은 적극적인 생각과 감각, 창의적 인 상상력이 있어야 합니다.

자신의 글쓰기 재능과 소질을 유발할 수 있는 연습과 공부를 꾸준히 합니다. 예를 들어, 읽고 쓰기 연습, 영어권 작가의 작품을 읽기, 시...


- 계속

자신의 작품을 판매할 수 있는 채널을 찾습니다. 일반적으로 글쓰기 작품을 판매할 수 있는 채널은 출판사, 잡지, 신문, 웹진 등이 있습니다. 이러한 채널을 통해 자신의 작품을 판매할 수 있습니다.

자신의 작품을 적극적으로 홍보합니다. 자신의 작품을 출간한 채널을 통해 적극적으로 홍보할 수 있지만, 소셜 미디어나 웹사이트, 블로그 등을 통해 자신의 작품을 소개할 수도 있습니다.

글쓰기로 수익을 창출하는 것은 쉽지 않...


- 계속

할 수 있지만, 자신의 재능과 기술을 기반으로 여러 가지 방법을 시도해보면서 수익을 창출할 수 있을 것입니다. 글쓰기 수익을 창출하기 위해서는 자신의 재능과 기술, 열정과 적극성, 새로운 아이디어와 창의적 접근법 등을 기반으로 한 적극적인 접근과 여러 가지 시도가 필요할 것입니다.



글쓰기 창의력을 키우는 방법은?

 

- 글쓰기 창의력을 키우는 방법은?

글쓰기 창의력을 키우기 위해서는 여러 가지 방법이 있을 수 있습니다. 아래에 제시한 것 중 적절한 것을 참고해보세요:

읽기: 여러 장르의 책을 읽고 새로운 아이디어를 얻고, 인간관계, 상황, 생각 등 재밌는 소재를 찾기 위해서 읽기를 자주 합니다.

새로운 경험을 쌓기: 새로운 경험을 쌓기 위해서는 새로운 일을 시도하고, 새로운 장소를 찾아가고, 새로운 사람과 인연을 쌓습니다.

창의적 생각 기술 연습: 창의적 생각 기술을 연습하기 위해서는 새로운 아이디어를 창출하기 위한 연습을 합니다. 예를 들어 재료가 제한적인 상황에서 요리를 고민하거나, 장난감으로 새로운 게임을 만들기를 시도할 수 있습니...


- 계속

글쓰기 창의력을 키우는 방법은 다양한 것들이 있습니다. 아래와 같은 것들을 시도해보세요:

새로운 경험과 정보를 습득하기: 새로운 정보를 습득하는 것은 새로운 창의적 생각을 유발할 수 있습니다. 책을 읽거나 새로운 정보를 찾아보거나, 새로운 경험을 해보는 것도 좋은 아이디어입니다.

생각을 적어보기: 생각을 적어보는 것은 새로운 아이디어를 창출하는데 도움이 됩니다. 적기 전에 생각을 정리하고, 새로운 아이디어가 생길 때마다 적어보세요.

생각을 정리하기: 생각을 정리하는 것은 창의적 생각을 유발할 수 있는 좋은 방법입니다. 생각을 정리하기 위해서는 우선 생각을 정리할 주제를 정하고, 그 주제에 대한 생각을 정리해보는 것이 좋습니다.

새로...


- 계속

글쓰기 창의력을 키우는 방법에 대해서 알려드리겠습니다.

새로운 경험과 정보 습득: 새로운 경험과 정보를 습득하면 새로운 아이디어가 생길 수 있습니다. 책을 읽거나 새로운 지식을 습득하는 것부터 새로운 사람과 인터넷으로 새로운 인상을 얻는 것까지, 새로운 경험과 정보를 습득하는 것은 창의력을 키우는 좋은 방법입니다.

상상력 운동: 상상력을 운동하는 것도 창의력을 키우는 방법 중 하나입니다. 상상력 운동은 상상력을 자극해 주기 위한 작업입니다. 새로운 이야기를 만들거나, 새로운 상황을 그리거나, 새로운 사물을 생각해보는 것 등 상상력 운동을 하면 창의력을 키우는 것이 가능합니다.

새로운 관점 취하기: 새로운 관점을 취하는 것...


- chat-gpt는 응답하는 문장의 길이 제한으로 자주 문장이 중간에 끊어진다.(끊어진 곳을 ...로 표시하였습니다.)

- chat-gpt와 유익하게 대화하려면 계속 원하는 쪽으로 대화를 이끌어 가는 요령이 필요하다.

 

반응형

+ Recent posts