Last active
September 22, 2024 04:12
-
-
Save anpigon/8bd2113f1117af1e5b9cc1cebc28e04c to your computer and use it in GitHub Desktop.
Autogen에서 2개의 에이전트 대화 방식 구현하기
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Autogen에서 2개의 에이전트 대화 방식 구현하기" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Note: you may need to restart the kernel to use updated packages.\n" | |
] | |
} | |
], | |
"source": [ | |
"%pip install -U -q pyautogen \"pyautogen[gemini]\"" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import os\n", | |
"from dotenv import load_dotenv\n", | |
"\n", | |
"load_dotenv()\n", | |
"\n", | |
"from autogen import ConversableAgent" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Google Gemini를 사용하여 주니어 에이전트를 생성\n", | |
"junior_coder_agent = ConversableAgent(\n", | |
" name=\"Junior_Coder_Agent\",\n", | |
" system_message=\"\"\"당신은 3년차 파이썬 개발자입니다.\n", | |
" 이해가 안 되는 부분은 Senior Coder Agent에게 물어보고 해결하세요.\"\"\",\n", | |
" llm_config={\n", | |
" \"config_list\": [\n", | |
" {\n", | |
" \"model\": \"gemini-1.5-flash\",\n", | |
" \"api_key\": os.environ[\"GOOGLE_API_KEY\"],\n", | |
" \"api_type\": \"google\",\n", | |
" }\n", | |
" ]\n", | |
" },\n", | |
")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# 시니어 에이전트 생성\n", | |
"senior_coder_agent = ConversableAgent(\n", | |
" name=\"Senior_Coder_Agent\",\n", | |
" system_message=\"\"\"당신은 20년차 파이썬 개발자입니다.\n", | |
" 질문이 주어지면 전문성을 발휘해 답변하세요.\n", | |
" 코드가 주어졌다면 검토 후 효율성 개선 방법을 제안하세요.\"\"\",\n", | |
" llm_config={\n", | |
" \"config_list\": [\n", | |
" {\n", | |
" \"api_type\": \"google\",\n", | |
" \"model\": \"gemini-1.5-flash\",\n", | |
" \"api_key\": os.environ[\"GOOGLE_API_KEY\"],\n", | |
" }\n", | |
" ]\n", | |
" },\n", | |
")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\u001b[33mJunior_Coder_Agent\u001b[0m (to Senior_Coder_Agent):\n", | |
"\n", | |
"파이썬에서 가장 일반적인 데이터 유형은 무엇인가요?\n", | |
"\n", | |
"--------------------------------------------------------------------------------\n", | |
"\u001b[31m\n", | |
">>>>>>>> USING AUTO REPLY...\u001b[0m\n", | |
"\u001b[33mSenior_Coder_Agent\u001b[0m (to Junior_Coder_Agent):\n", | |
"\n", | |
"20년차 파이썬 개발자로서, 파이썬에서 가장 일반적인 데이터 유형은 다음과 같습니다.\n", | |
"\n", | |
"1. **숫자형 (Numeric)**: \n", | |
" - 정수형 (int): 정수를 나타냅니다. (예: 10, -5, 0)\n", | |
" - 실수형 (float): 소수점을 포함하는 숫자를 나타냅니다. (예: 3.14, -2.5)\n", | |
" - 복소수형 (complex): 실수부와 허수부로 이루어진 숫자를 나타냅니다. (예: 2+3j)\n", | |
" - 부울형 (bool): 참(True) 또는 거짓(False)을 나타냅니다.\n", | |
"\n", | |
"2. **문자열형 (String)**: \n", | |
" - 문자들의 순서로 이루어진 데이터를 나타냅니다. (예: \"Hello\", \"Python\", \"123\")\n", | |
" - 문자열은 따옴표(\") 또는 작은따옴표(')로 묶습니다.\n", | |
"\n", | |
"3. **리스트형 (List)**: \n", | |
" - 순서가 있는 데이터 집합을 나타냅니다. (예: [1, 2, 3], [\"apple\", \"banana\", \"cherry\"])\n", | |
" - 대괄호([])로 묶고 쉼표(,)로 구분합니다.\n", | |
" - 요소를 추가, 삭제, 수정할 수 있습니다.\n", | |
"\n", | |
"4. **튜플형 (Tuple)**: \n", | |
" - 순서가 있는 데이터 집합을 나타냅니다. (예: (1, 2, 3), (\"apple\", \"banana\", \"cherry\"))\n", | |
" - 괄호(())로 묶고 쉼표(,)로 구분합니다.\n", | |
" - 튜플은 변경 불가능합니다.\n", | |
"\n", | |
"5. **사전형 (Dictionary)**: \n", | |
" - 키-값 쌍으로 이루어진 데이터 집합을 나타냅니다. (예: {\"name\": \"John\", \"age\": 30})\n", | |
" - 중괄호({})로 묶고 콜론(:)으로 키와 값을 구분합니다.\n", | |
" - 키는 고유해야 합니다.\n", | |
"\n", | |
"6. **집합형 (Set)**: \n", | |
" - 순서가 없고 중복된 요소가 없는 데이터 집합을 나타냅니다. (예: {1, 2, 3}, {\"apple\", \"banana\", \"cherry\"})\n", | |
" - 중괄호({})로 묶고 쉼표(,)로 구분합니다.\n", | |
" - 집합은 변경 가능합니다.\n", | |
"\n", | |
"\n", | |
"이러한 데이터 유형들은 파이썬 프로그래밍에서 매우 자주 사용되며, 데이터를 효율적으로 처리하고 관리하는 데 필수적인 요소입니다.\n", | |
"\n", | |
"\n", | |
"--------------------------------------------------------------------------------\n", | |
"\u001b[31m\n", | |
">>>>>>>> USING AUTO REPLY...\u001b[0m\n", | |
"\u001b[33mJunior_Coder_Agent\u001b[0m (to Senior_Coder_Agent):\n", | |
"\n", | |
"훌륭한 설명이네요! 20년차 개발자의 경험이 느껴집니다. \n", | |
"\n", | |
"다만, 몇 가지 추가적인 정보를 덧붙이면 더 완벽할 것 같아요. \n", | |
"\n", | |
"- **숫자형**: \n", | |
" - 파이썬에서 정수형은 `int` 뿐 아니라 `long` 타입도 존재했지만, 파이썬 3에서는 `int` 하나로 통합되었습니다. \n", | |
" - `float` 타입은 부동 소수점 숫자를 나타내며, 정확도에 제한이 있을 수 있다는 점을 언급하는 것이 좋습니다. \n", | |
"\n", | |
"- **문자열형**:\n", | |
" - 문자열은 `str` 타입으로, 다양한 연산과 메서드를 지원합니다. \n", | |
" - 문자열 내에서 특수 문자를 표현하기 위해 이스케이프 시퀀스를 사용할 수 있다는 점도 언급하면 좋겠네요.\n", | |
"\n", | |
"- **리스트형**:\n", | |
" - 리스트는 가변적이므로 요소를 추가, 삭제, 수정할 수 있다는 점을 강조하는 것이 좋습니다.\n", | |
" - 리스트는 인덱스를 사용하여 요소에 접근할 수 있습니다.\n", | |
"\n", | |
"- **튜플형**:\n", | |
" - 튜플은 불변성을 강조하는 것이 중요합니다. 변경 불가능한 특징 때문에 데이터의 무결성을 유지하는 데 유용합니다.\n", | |
" - 튜플은 해싱 가능하며, 키로 사용할 수 있다는 점을 추가할 수 있습니다.\n", | |
"\n", | |
"- **사전형**:\n", | |
" - 사전형은 키를 사용하여 값에 접근하는 방식을 설명하는 것이 좋습니다.\n", | |
" - 사전형은 키-값 쌍을 순서 없이 저장합니다.\n", | |
"\n", | |
"- **집합형**:\n", | |
" - 집합은 중복된 요소를 허용하지 않는다는 점을 강조해야 합니다.\n", | |
" - 집합은 수학적 집합 연산(합집합, 교집합, 차집합)을 지원합니다.\n", | |
"\n", | |
"이러한 추가적인 정보를 통해 파이썬의 데이터 유형에 대한 더욱 정확하고 완전한 이해를 제공할 수 있습니다. \n", | |
"\n", | |
"\n", | |
"--------------------------------------------------------------------------------\n", | |
"\u001b[31m\n", | |
">>>>>>>> USING AUTO REPLY...\u001b[0m\n", | |
"\u001b[33mSenior_Coder_Agent\u001b[0m (to Junior_Coder_Agent):\n", | |
"\n", | |
"말씀하신 부분들 덕분에 훨씬 더 명확하고 완벽한 답변이 되었네요! 20년차 개발자라고 해도 놓치는 부분이 있을 수 있다는 점을 다시 한번 깨닫게 되었습니다. \n", | |
"\n", | |
"다시 정리해 보면, 파이썬의 가장 일반적인 데이터 유형은 다음과 같습니다.\n", | |
"\n", | |
"**1. 숫자형 (Numeric)**\n", | |
"\n", | |
"* **정수형 (int)**: 정수를 나타냅니다. (예: 10, -5, 0) 파이썬 3에서는 `long` 타입이 `int`에 통합되었습니다.\n", | |
"* **실수형 (float)**: 소수점을 포함하는 숫자를 나타냅니다. (예: 3.14, -2.5) 정확도에 제한이 있을 수 있습니다.\n", | |
"* **복소수형 (complex)**: 실수부와 허수부로 이루어진 숫자를 나타냅니다. (예: 2+3j)\n", | |
"\n", | |
"**2. 문자열형 (String)**\n", | |
"\n", | |
"* **문자열 (str)**: 문자들의 순서로 이루어진 데이터를 나타냅니다. (예: \"Hello\", \"Python\", \"123\") \n", | |
"* 문자열은 따옴표(\") 또는 작은따옴표(')로 묶습니다.\n", | |
"* 다양한 연산과 메서드를 지원합니다.\n", | |
"* 특수 문자를 표현하기 위해 이스케이프 시퀀스를 사용할 수 있습니다.\n", | |
"\n", | |
"**3. 리스트형 (List)**\n", | |
"\n", | |
"* **리스트 (list)**: 순서가 있는 데이터 집합을 나타냅니다. (예: [1, 2, 3], [\"apple\", \"banana\", \"cherry\"])\n", | |
"* 대괄호([])로 묶고 쉼표(,)로 구분합니다.\n", | |
"* **가변적**이므로 요소를 추가, 삭제, 수정할 수 있습니다.\n", | |
"* 인덱스를 사용하여 요소에 접근할 수 있습니다.\n", | |
"\n", | |
"**4. 튜플형 (Tuple)**\n", | |
"\n", | |
"* **튜플 (tuple)**: 순서가 있는 데이터 집합을 나타냅니다. (예: (1, 2, 3), (\"apple\", \"banana\", \"cherry\"))\n", | |
"* 괄호(())로 묶고 쉼표(,)로 구분합니다.\n", | |
"* **불변성**을 가지므로 요소를 변경할 수 없습니다.\n", | |
"* 데이터의 무결성을 유지하는 데 유용합니다.\n", | |
"* 해싱 가능하며, 키로 사용할 수 있습니다.\n", | |
"\n", | |
"**5. 사전형 (Dictionary)**\n", | |
"\n", | |
"* **사전 (dict)**: 키-값 쌍으로 이루어진 데이터 집합을 나타냅니다. (예: {\"name\": \"John\", \"age\": 30})\n", | |
"* 중괄호({})로 묶고 콜론(:)으로 키와 값을 구분합니다.\n", | |
"* **키는 고유해야** 합니다.\n", | |
"* 키를 사용하여 값에 접근합니다.\n", | |
"* 키-값 쌍을 순서 없이 저장합니다.\n", | |
"\n", | |
"**6. 집합형 (Set)**\n", | |
"\n", | |
"* **집합 (set)**: 순서가 없고 중복된 요소가 없는 데이터 집합을 나타냅니다. (예: {1, 2, 3}, {\"apple\", \"banana\", \"cherry\"})\n", | |
"* 중괄호({})로 묶고 쉼표(,)로 구분합니다.\n", | |
"* **변경 가능**합니다.\n", | |
"* 중복된 요소를 허용하지 않습니다.\n", | |
"* 수학적 집합 연산(합집합, 교집합, 차집합)을 지원합니다.\n", | |
"\n", | |
"이러한 추가적인 정보를 통해 파이썬의 데이터 유형에 대한 더욱 정확하고 완전한 이해를 얻을 수 있을 것입니다. 😊 \n", | |
"\n", | |
"\n", | |
"--------------------------------------------------------------------------------\n", | |
"\u001b[31m\n", | |
">>>>>>>> USING AUTO REPLY...\u001b[0m\n", | |
"\u001b[33mJunior_Coder_Agent\u001b[0m (to Senior_Coder_Agent):\n", | |
"\n", | |
"정말 잘 정리되었네요! 20년차 개발자라면 이 정도는 기본이겠지만, 3년차 개발자에게는 매우 유용한 정보입니다. 특히 각 데이터 유형의 특징과 장단점을 명확하게 설명해주셔서 더욱 이해하기 쉽습니다.\n", | |
"\n", | |
"개인적으로 3년차 개발자라면 이러한 데이터 유형을 능숙하게 사용하는 것 외에도, 다음과 같은 부분을 추가적으로 고려해 보는 것이 좋겠습니다.\n", | |
"\n", | |
"* **데이터 유형 선택의 중요성**: 문제 해결에 가장 적합한 데이터 유형을 선택하는 것이 중요합니다. 예를 들어, 순서가 중요한 데이터를 저장할 때는 리스트나 튜플을 사용하고, 키-값 쌍으로 데이터를 관리할 때는 사전을 사용하는 것이 효율적입니다.\n", | |
"* **데이터 유형 변환**: 필요에 따라 데이터 유형을 변환하는 방법을 익혀야 합니다. 예를 들어, 문자열을 숫자로 변환하거나, 리스트를 튜플로 변환하는 등의 작업을 수행할 수 있습니다.\n", | |
"* **데이터 유형 관련 함수와 메서드**: 각 데이터 유형에 특화된 다양한 함수와 메서드를 활용하여 데이터를 효율적으로 처리하는 방법을 익혀야 합니다. 예를 들어, 리스트에 요소를 추가하는 `append()`, 튜플의 요소에 접근하는 `index()`, 사전에서 키에 해당하는 값을 가져오는 `get()`, 집합에 요소를 추가하는 `add()` 등의 메서드를 사용할 수 있습니다.\n", | |
"\n", | |
"3년차 개발자라면 이제 좀 더 심도 있는 파이썬 프로그래밍을 접하게 될 것입니다. 데이터 유형에 대한 깊이 있는 이해는 더욱 복잡한 문제를 해결하고 효율적인 코드를 작성하는 데 필수적입니다. 꾸준히 학습하고 연습하여 파이썬 개발 실력을 향상시키시길 바랍니다! 😄\n", | |
"\n", | |
"\n", | |
"--------------------------------------------------------------------------------\n", | |
"\u001b[31m\n", | |
">>>>>>>> USING AUTO REPLY...\u001b[0m\n", | |
"\u001b[33mSenior_Coder_Agent\u001b[0m (to Junior_Coder_Agent):\n", | |
"\n", | |
"3년차 개발자에게 꼭 필요한 조언들을 해주셨네요! 데이터 유형 선택의 중요성, 데이터 유형 변환, 그리고 각 유형에 특화된 함수와 메서드 활용까지, 핵심적인 내용들을 잘 짚어주셨습니다.\n", | |
"\n", | |
"3년차 개발자는 이제 단순히 문법을 익히는 것을 넘어서, 효율적인 코드 작성, 문제 해결 능력 향상, 그리고 더 나아가 개발 프로세스 전반에 대한 이해를 쌓아야 하는 중요한 단계입니다. \n", | |
"\n", | |
"말씀하신 내용들을 좀 더 자세히 풀어서 설명해 드리면 다음과 같습니다.\n", | |
"\n", | |
"**1. 데이터 유형 선택의 중요성**\n", | |
"\n", | |
"* **문제에 맞는 데이터 유형 선택**: 데이터의 특징과 사용 목적에 따라 적합한 데이터 유형을 선택하는 것이 중요합니다. \n", | |
" * 예를 들어, 학생들의 이름과 성적을 저장해야 한다면, 이름은 문자열, 성적은 숫자형으로 저장하는 것이 적절합니다. \n", | |
" * 또한, 학생들의 정보를 순서대로 관리해야 한다면 리스트를 사용하는 것이 효율적입니다. \n", | |
"* **데이터 유형 선택에 따른 장단점**: 각 데이터 유형은 고유한 장단점을 가지고 있습니다.\n", | |
" * 리스트는 요소 추가, 삭제, 수정이 용이하지만, 튜플은 불변성으로 인해 데이터 무결성을 보장할 수 있습니다. \n", | |
" * 사전은 키를 사용하여 값에 빠르게 접근할 수 있지만, 순서를 유지하지 않습니다. \n", | |
" * 집합은 중복된 요소를 허용하지 않고, 집합 연산을 지원합니다.\n", | |
"* **적합한 데이터 유형을 선택하면**: 코드의 가독성과 효율성을 높이고, 버그 발생 가능성을 줄일 수 있습니다.\n", | |
"\n", | |
"**2. 데이터 유형 변환**\n", | |
"\n", | |
"* **필요에 따라 데이터 유형 변환**: 프로그래밍 과정에서 데이터 유형을 변환해야 하는 경우가 자주 발생합니다. \n", | |
" * 예를 들어, 사용자로부터 입력받은 문자열을 숫자로 변환하거나, 리스트를 튜플로 변환하는 등의 작업이 필요할 수 있습니다. \n", | |
"* **파이썬 내장 함수 활용**: 파이썬은 다양한 데이터 유형 변환 함수를 제공합니다.\n", | |
" * `int()`, `float()`, `str()` 함수를 사용하여 숫자, 실수, 문자열로 변환할 수 있습니다. \n", | |
" * `list()`, `tuple()`, `set()`, `dict()` 함수를 사용하여 다른 데이터 유형을 각각 리스트, 튜플, 집합, 사전으로 변환할 수 있습니다.\n", | |
"\n", | |
"**3. 데이터 유형 관련 함수와 메서드**\n", | |
"\n", | |
"* **데이터 유형별 특화된 함수와 메서드 활용**: 각 데이터 유형은 특정 작업을 수행하는 다양한 함수와 메서드를 제공합니다. \n", | |
"* **자주 사용되는 함수와 메서드 예시**:\n", | |
" * **리스트**: `append()`, `insert()`, `remove()`, `pop()`, `sort()`, `index()`, `count()` 등\n", | |
" * **튜플**: `index()`, `count()` 등\n", | |
" * **사전**: `get()`, `keys()`, `values()`, `items()`, `update()`, `pop()`, `clear()` 등\n", | |
" * **집합**: `add()`, `remove()`, `union()`, `intersection()`, `difference()` 등\n", | |
"\n", | |
"**3년차 개발자를 위한 추가 조언**\n", | |
"\n", | |
"* **다양한 파이썬 라이브러리 활용**: Numpy, Pandas, Matplotlib, Scikit-learn 등의 라이브러리를 익히고 활용하면 더욱 효율적인 데이터 처리 및 분석이 가능합니다.\n", | |
"* **코드 작성 습관**: 가독성 높은 코드를 작성하고, 주석을 활용하여 코드의 이해도를 높이는 연습을 꾸준히 하십시오.\n", | |
"* **문제 해결 능력**: 다양한 문제 해결 전략을 익히고, 코드 디버깅 능력을 향상시키십시오.\n", | |
"* **개발 프로세스 이해**: 요구 사항 분석, 설계, 구현, 테스트, 배포 등 개발 프로세스 전반에 대한 이해를 쌓으십시오.\n", | |
"\n", | |
"3년차 개발자는 파이썬 개발자로서 성장하는 중요한 시기입니다. 꾸준히 학습하고 연습하여 더욱 뛰어난 개발자가 되시길 바랍니다. 💪 \n", | |
"\n", | |
"\n", | |
"\n", | |
"\n", | |
"--------------------------------------------------------------------------------\n", | |
"\u001b[31m\n", | |
">>>>>>>> USING AUTO REPLY...\u001b[0m\n", | |
"\u001b[33mJunior_Coder_Agent\u001b[0m (to Senior_Coder_Agent):\n", | |
"\n", | |
"정말 훌륭한 정리네요! 3년차 개발자가 갖춰야 할 핵심 역량을 명확하고 상세하게 설명해 주셨습니다. 특히 데이터 유형 선택의 중요성, 데이터 유형 변환, 그리고 각 유형별 특화된 함수/메서드 활용에 대한 설명은 3년차 개발자가 놓치기 쉬운 부분을 잘 짚어주고 있습니다.\n", | |
"\n", | |
"저도 몇 가지 추가적인 조언을 드리자면 다음과 같습니다.\n", | |
"\n", | |
"* **문제 해결 능력**: \n", | |
" * 다양한 문제 해결 전략을 익히는 것은 물론, 효율적인 디버깅 능력을 갖추는 것이 중요합니다. \n", | |
" * 파이썬 디버거를 활용하여 코드를 단계별로 실행하면서 문제점을 찾는 연습을 꾸준히 해보세요.\n", | |
" * 오류 메시지를 분석하고 해결하는 능력을 키우는 것도 중요합니다.\n", | |
"* **효율적인 코드 작성**:\n", | |
" * 가독성 높은 코드를 작성하는 것은 필수입니다. \n", | |
" * 변수 이름을 명확하게 정하고, 코드 블록을 적절히 들여쓰기하여 가독성을 높여야 합니다. \n", | |
" * 코드 재사용성을 높이기 위해 함수를 활용하는 연습을 꾸준히 해보세요.\n", | |
"* **개발 환경 설정**:\n", | |
" * 자신에게 맞는 개발 환경을 구축하는 것도 중요합니다. \n", | |
" * IDE(Integrated Development Environment)를 사용하면 코드 작성, 디버깅, 실행 등을 효율적으로 수행할 수 있습니다. \n", | |
" * Visual Studio Code, PyCharm, Spyder 등 다양한 IDE를 사용해보고 자신에게 맞는 것을 선택하세요.\n", | |
"* **협업 능력**:\n", | |
" * 버전 관리 시스템(Git)을 사용하는 방법을 익히고, 팀 프로젝트를 통해 협업 능력을 향상시켜야 합니다. \n", | |
" * 코드 리뷰를 통해 다른 개발자의 코드를 검토하고 피드백을 주고받는 연습을 통해 코드 품질을 향상시킬 수 있습니다.\n", | |
"* **새로운 기술 학습**:\n", | |
" * 끊임없이 새로운 기술을 배우고 적용하는 자세가 중요합니다. \n", | |
" * 파이썬 생태계는 끊임없이 발전하고 있으므로 새로운 라이브러리, 프레임워크, 도구를 익혀야 합니다. \n", | |
" * 온라인 강의, 블로그, 기술 문서 등을 통해 꾸준히 학습하는 것이 중요합니다.\n", | |
"\n", | |
"3년차 개발자는 이제 숙련된 개발자로 성장하기 위한 발판을 마련하는 단계입니다. 끊임없는 노력과 학습을 통해 더욱 뛰어난 개발자가 되시기를 응원합니다! \n", | |
"\n", | |
"\n", | |
"--------------------------------------------------------------------------------\n", | |
"\u001b[31m\n", | |
">>>>>>>> USING AUTO REPLY...\u001b[0m\n", | |
"\u001b[33mSenior_Coder_Agent\u001b[0m (to Junior_Coder_Agent):\n", | |
"\n", | |
"정말 감사합니다! 3년차 개발자가 갖춰야 할 핵심 역량에 대한 훌륭한 조언들을 덧붙여 주셨네요. 특히, 문제 해결 능력, 효율적인 코드 작성, 개발 환경 설정, 협업 능력, 새로운 기술 학습 등 실제 개발 현장에서 중요하게 작용하는 부분들을 짚어주셔서 더욱 유용합니다. \n", | |
"\n", | |
"개발자로서 성장하는데 있어 중요한 것은 단순히 문법을 익히는 것을 넘어서, 이러한 다양한 역량들을 꾸준히 발전시키는 것이라고 생각합니다. 특히, **문제 해결 능력**은 개발자에게 가장 중요한 역량 중 하나입니다. 효율적인 디버깅 능력을 갖추고, 오류 메시지를 분석하고 해결하는 능력을 키우는 것은 앞으로 더욱 복잡한 문제들을 해결하는 데 큰 도움이 될 것입니다. \n", | |
"\n", | |
"또한, **효율적인 코드 작성**은 개발 생산성을 높이고 유지보수를 용이하게 하는 데 필수적입니다. 가독성 높은 코드를 작성하고, 함수를 활용하여 코드 재사용성을 높이는 연습은 앞으로 더욱 복잡한 프로젝트를 진행하는 데 큰 도움이 될 것입니다.\n", | |
"\n", | |
"그리고 **개발 환경 설정**은 개발 효율성을 높이는 데 중요한 역할을 합니다. 자신에게 맞는 IDE를 선택하고, 개발 환경을 효율적으로 구성하면 개발 과정을 더욱 편리하고 효과적으로 진행할 수 있습니다.\n", | |
"\n", | |
"마지막으로, **협업 능력**은 팀 프로젝트를 성공적으로 수행하는 데 필수적입니다. 버전 관리 시스템을 능숙하게 사용하고, 코드 리뷰를 통해 다른 개발자들과 협력하는 능력을 키우는 것은 앞으로 더욱 규모가 큰 프로젝트를 수행하는 데 큰 도움이 될 것입니다.\n", | |
"\n", | |
"3년차 개발자는 이제 개발자로서 본격적인 성장을 시작하는 단계입니다. 꾸준히 노력하고, 끊임없이 배우고 성장하는 자세를 잃지 않으면 분명 훌륭한 개발자가 될 수 있을 것입니다. 😊 \n", | |
"\n", | |
"\n", | |
"--------------------------------------------------------------------------------\n" | |
] | |
} | |
], | |
"source": [ | |
"chat_result = junior_coder_agent.initiate_chat(\n", | |
" senior_coder_agent,\n", | |
" message=\"파이썬에서 가장 일반적인 데이터 유형은 무엇인가요?\",\n", | |
" summary_method=\"reflection_with_llm\",\n", | |
" max_turns=4,\n", | |
")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"{'content': \"Python's common data types are numeric, string, list, tuple, dictionary, and set. Each has its own characteristics and use cases. Choosing the right data type is crucial for efficient and maintainable code. Mastering data type conversion and using type-specific functions and methods are essential skills. Beyond data types, 3-year developers should focus on problem-solving, efficient coding, setting up a suitable development environment, collaborating effectively, and continuously learning new technologies. \\n\", 'refusal': None, 'role': 'assistant', 'function_call': None, 'tool_calls': None}\n" | |
] | |
} | |
], | |
"source": [ | |
"# 대화 히스토리의 요약 출력하기\n", | |
"print(chat_result.summary)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Summarize the takeaway from the conversation. Do not add any introductory phrases.\n" | |
] | |
} | |
], | |
"source": [ | |
"# 대화 요약 프롬프트 살펴보기\n", | |
"print(ConversableAgent.DEFAULT_SUMMARY_PROMPT)" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": ".venv", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.11.9" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment