Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Feedback api & adjust llm setting #2

Open
wants to merge 35 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
c3034be
Add Feedback api & adjust llm setting
sonwonho Dec 14, 2023
8904420
Fix empty LLM result role chagne system -> user
sonwonho Dec 15, 2023
e66963a
fix question input json
sonwonho Dec 15, 2023
2a565f8
update prompt version 2
sonwonho Dec 16, 2023
aef0200
Delete example.py
sonwonho Dec 16, 2023
44d3000
Update feedback v2
sonwonho Dec 16, 2023
bec77fd
fix calctoken
sonwonho Dec 16, 2023
cc99b6c
Update best answer v2
sonwonho Dec 16, 2023
d457498
remove ocr print log
sonwonho Dec 16, 2023
cd78dd0
Fix make same question
sonwonho Dec 16, 2023
931ef57
fix 이력서, 채용공고 요약 할루시네이션
sonwonho Dec 16, 2023
53a1806
update interviewer`s feel prompt
sonwonho Dec 16, 2023
38eba73
Fix make 20 question
sonwonho Dec 16, 2023
0800e05
update testapp->serviceapp
sonwonho Dec 16, 2023
9c0dd9c
update bestanswer v3
sonwonho Dec 16, 2023
1fcb99b
Update bestanswer maxtoken
sonwonho Dec 16, 2023
7e87a44
fix input best answer
sonwonho Dec 16, 2023
c36c74a
fix input best answer
sonwonho Dec 16, 2023
0977fd7
Update best answer v2
sonwonho Dec 16, 2023
f91fc90
Fix hcx-002 -> hcx-003
sonwonho May 7, 2024
0fd9990
Merge branch 'main' of https://github.com/sonwonho/ChwipoClova_AI
sonwonho May 7, 2024
db1947e
Add url to text function
sonwonho Jun 30, 2024
679898e
Add url to pdf function change pdfkit -> playwright
sonwonho Jul 1, 2024
e76f352
Fix: filename error
sonwonho Jul 9, 2024
89a5a62
Add: url_ocr function
sonwonho Jul 9, 2024
f4e8ead
Feat: article database control class
sonwonho Jul 9, 2024
3bd5ed0
Fix: url ocr function
sonwonho Jul 9, 2024
1a23f6a
Feat: article categorizing fucntion
sonwonho Jul 9, 2024
d978e84
Add: article_prompt.txt
sonwonho Jul 9, 2024
d1691dd
Update: requirements.txt
sonwonho Jul 9, 2024
7515d5e
Fix: 403 Forbidden
sonwonho Jul 10, 2024
a6e98b4
Fix: database connection error
sonwonho Jul 16, 2024
edd4ce2
Add: ocr error
sonwonho Jul 16, 2024
dc0c132
Fix: llm_result assignment
sonwonho Jul 16, 2024
9ba042a
Add: no categore log
sonwonho Jul 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
results/
config.json
*.pyc
test/
29 changes: 18 additions & 11 deletions config.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
{
"CLOVA_OCR": {
"API_URL": "INPUT_OCR_API_URL",
"KEY": "INPUT_OCR_KEY"
},
"API_URL": "INPUT_OCR_API_URL",
"KEY": "INPUT_OCR_KEY"
},
"LLM": {
"HOST": "INPUT_LLM_HOST",
"API_KEY": "INPUT_LLM_API_KEY",
"API_KEY_PRIMARY_VAL": "INPUT_LLM_API_KEY_PRIMARY_VAL"
},
"HOST": "INPUT_LLM_HOST",
"API_KEY": "INPUT_LLM_API_KEY",
"API_KEY_PRIMARY_VAL": "INPUT_LLM_API_KEY_PRIMARY_VAL"
},
"TOKENCALCULATOR": {
"HOST": "INPUT_TOKEN_CALCULATOR_API_KEY",
"API_KEY": "INPUT_TOKEN_CALCULATOR_API_KEY",
"API_KEY_PRIMARY_VAL": "INPUT_TOKEN_CALCULATOR_API_KEY_PRIMARY_VAL"
"HOST": "INPUT_TOKEN_CALCULATOR_API_KEY",
"API_KEY": "INPUT_TOKEN_CALCULATOR_API_KEY",
"API_KEY_PRIMARY_VAL": "INPUT_TOKEN_CALCULATOR_API_KEY_PRIMARY_VAL"
},
"ARTICLEDB":{
"HOST" : "INPUT_ARTICLE_DB_HOST",
"PORT" : "INPUT_ARTICLE_DB_PORT",
"ID" : "INPUT_ARTICLE_DB_ID",
"PASS" : "INPUT_ARTICLE_DB_PASSWORD",
"DATABASE" : "INPUT_ARTICLE_DB"
}
}
}
117 changes: 75 additions & 42 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,58 +1,91 @@
acme==1.1.0
APScheduler==3.10.4
asn1crypto==0.24.0
attrs==17.4.0
Automat==0.6.0
black==22.8.0
certifi==2018.1.18
attrs==19.3.0
Automat==0.8.0
backports.zoneinfo==0.2.1
blinker==1.8.2
certbot==0.40.0
certbot-apache==0.39.0
certbot-nginx==0.40.0
certifi==2019.11.28
chardet==3.0.4
click==8.0.4
colorama==0.3.7
click==8.1.7
colorama==0.4.3
command-not-found==0.3
ConfigArgParse==0.13.0
configobj==5.0.6
constantly==15.1.0
cryptography==2.1.4
dataclasses==0.8
distro-info===0.18ubuntu0.18.04.1
Flask==2.0.3
httplib2==0.9.2
hyperlink==17.3.1
idna==2.6
importlib-metadata==4.8.3
cryptography==2.8
dbus-python==1.2.16
distro==1.4.0
distro-info==0.23+ubuntu1.1
entrypoints==0.3
fail2ban==0.11.1
flask==3.0.3
future==0.18.2
greenlet==3.0.3
httplib2==0.14.0
hyperlink==19.0.0
idna==2.8
importlib-metadata==8.0.0
incremental==16.10.1
itsdangerous==2.0.1
Jinja2==3.0.3
keyring==10.6.0
keyrings.alt==3.0
itsdangerous==2.2.0
jinja2==3.1.4
josepy==1.2.0
keyring==18.0.1
language-selector==0.1
MarkupSafe==2.0.1
mypy-extensions==1.0.0
launchpadlib==1.10.13
lazr.restfulclient==0.14.2
lazr.uri==1.0.3
MarkupSafe==2.1.5
mock==3.0.5
mysqlclient==2.2.4
netifaces==0.10.4
oauthlib==3.1.0
PAM==0.4.2
pathspec==0.9.0
platformdirs==2.4.0
parsedatetime==2.4
pbr==5.4.5
pexpect==4.6.0
playwright==1.45.0
pyasn1==0.4.2
pyasn1-modules==0.2.1
pycrypto==2.6.1
pygobject==3.26.1
pyOpenSSL==17.5.0
pyee==11.1.0
PyGObject==3.36.0
PyHamcrest==1.9.0
PyICU==2.4.2
pyinotify==0.9.6
PyJWT==1.7.1
pyOpenSSL==19.0.0
pyparsing==2.4.6
pyRFC3339==1.1
pyserial==3.4
python-apt==1.6.5+ubuntu0.3
python-debian==0.1.32
pyxdg==0.25
PyYAML==3.12
requests==2.18.4
requests-unixsocket==0.1.5
python-apt==2.0.1+ubuntu0.20.4.1
python-augeas==0.5.0
python-debian==0.1.36+ubuntu1.1
pytz==2019.3
PyYAML==5.3.1
requests==2.22.0
requests-toolbelt==0.8.0
requests-unixsocket==0.2.0
SecretStorage==2.3.1
service-identity==16.0.0
six==1.11.0
ssh-import-id==5.7
service-identity==18.1.0
simplejson==3.16.0
six==1.14.0
sos==4.5.6
ssh-import-id==5.10
systemd-python==234
tomli==1.2.3
Twisted==17.9.0
typed-ast==1.5.5
typing-extensions==4.1.1
Twisted==18.9.0
typing-extensions==4.12.2
tzlocal==5.2
ubuntu-pro-client==8001
ufw==0.36
unattended-upgrades==0.1
urllib3==1.22
Werkzeug==2.0.3
zipp==3.6.0
zope.interface==4.3.2
urllib3==1.25.8
wadllib==1.3.3
werkzeug==3.0.3
zipp==3.19.2
zope.component==4.3.0
zope.event==4.4
zope.hookable==5.0.0
zope.interface==4.7.1
53 changes: 53 additions & 0 deletions resources/article_prompt.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
당신은 컨텐츠를 요약 분석해서 카테고리를 분류하는 컨텐츠 기업의 모더레이터 입니다.
지금부터 아래의 [요청]을 읽고 차례대로 작업을 수행해주세요.

[요청]
1. [규칙]을 먼저 읽어주세요.
2. 다음으로 [카테고리]를 읽어주세요. 이제부터 분류할 컨텐츠는 반드시 이 카테고리 리스트 항목에 속하게 됩니다.
3. 1,2번이 완료가 되었다면 [본문] 내용을 읽어주세요.
4. 1,2,3번 모두 읽었고 이해가 되었다면 이 [본문] 내용이 아래 [카테고리]의 #소분류 중 어떤 것에 속하는지 카테고리를 분류해주세요.


[카테고리]
대분류
1. 커리어 : 이직, 취업, 경력 개발 등의 지식이나 정보를 제공하는 대분류 카테고리
2. 산업 : 특정한 산업에 대한 지식이나 정보를 제공하는 대분류 카테고리
3. 직무 : 특정한 직업, 직무, 역할에 대한 지식이나 정보를 제공하는 대분류 카테고리
4. 트렌드 : 로컬 or 글로벌 사업 중 특정 영역에 대한 지식이나 정보를 제공하는 대분류 카테고리

소분류
1. 커리어
- 목표 설정 : 경력 성장의 방향과 목표에 대한 정보, 방법 등을 제공하는 소분류 카테고리
- 역량 강화 : 스킬셋, 기술, 도구 사용 등의 정보, 지식, 교육에 대한 정보를 제공하는 소분류 카테고리
- 실전 경험 : 현업에서 어떤 것을 배울 수 있는지, 협업, 커뮤니케이션 노하우, 직장 생활 등의 정보를 제공하는 소분류 카테고리
- 마인드셋 : 기술, 도구 활용, 커뮤니케이션 등등 업무의 소프트/하드 스킬이 아닌 커리어를 위한 철학과 주관을 만들고 연습하는 소분류 카테고리
- 이직/전환 : 속해있는 산업군이나 직무에서 다른 것으로 이직하거나 전환하는 내용 관련 소분류 카테고리
2. 산업
- IT/플랫폼 : 웹 서비스, 앱 서비스 등 소프트웨어를 주요 사업으로 진행하는 회사 (구글, 메타, MS, 네이버, 카카오, 배달의민족, 토스 등) 들에 대한 정보와 지식 그리고 최신 뉴스까지
- 제조/유통 : 반도체, 완성차, 부품, 디바이스 등 하드웨어 제조/유통을 주요 사업으로 진행하는 회사에 대한 정보와 지식, 최신 뉴스
- 건축/설계 : 건축 디자인, 건물 설계 등의 사업을 주로 진행하는 회사에 대한 정보와 지식, 최신 뉴스
- 금융 : 은행, 증권, 보험, 대부업 등 금융 관련 사업을 주로 진행하는 회사에 대한 정보와 지식, 최신 뉴스
- 사회공헌 : 복지, 환경, 공공정책 등 사회 전반 향상에 대한 사업을 주로 진행하는 회사(재단, 사단법인, 비영리단체, 비영리법인, 시민단체 등)에 대한 정보와 지식, 최신 뉴스
- 미디어 : 컨텐츠, 뉴스, OTT, 영화, 방송, 스트리밍, 음악, 공연 등 엔터테인먼트 사업을 주로 진행하는 회사에 대한 정보와 지식, 최신 뉴스
- 바이오/헬스케어 : 보건, 의료, 건강, 의료기기, 건강기능식품, 약품 등 치료와 의료 관련 사업을 주로 진행하는 회사에 대한 정보와 지식, 최신 뉴스
- 교육 : 공교육, 사교육 관련 사회 트렌드, 정보, 지식, 최신 뉴스
- 패션 : 의류, 패션, 패션 디자인, 패션 플랫폼 관련 사회 트렌드, 회사 정보, 지식, 관련 정보, 최신 뉴스
- F&B : 식음료 관련 사회 트렌드, 회사 정보, 지식, 관련 정보, 최신 뉴스
3. 직무
- IT/개발 : 소프트웨어 기획, 디자인, 개발, 데이터 분석 직무 관련 지식, 정보, 회사 소식, 최신 뉴스
- 사업/전략 : 사업 기획, 사업 개발, 전략 기획, 재무 등 직무 관련 지식, 정보, 회사 소식, 최신 뉴스
- 마케팅/영업 : 퍼포먼스 마케팅, 컨텐츠 마케팅, 그로스 마케팅, 해외 영업, 기술 영업, 영업, B2B영업 등 직무 관련 지식, 정보, 회사 소식, 최신 뉴스
- 디자인 : 그래픽 디자인, UI 디자인, 3D 디자인, 건축 디자인, 모델링, 패션 디자인 등 디자인 직무 관련 지식, 정보, 회사 소식, 최신 뉴스
- 회계/세무 : 회계, 세무 직무 관련 지식, 정보, 회사 소식, 최신 뉴스
- HR : 인재 채용, 운용, 급여, 인사 시스템, 직원 복지, 평가 등 직무 관련 지식, 정보, 회사 소식, 최신 뉴스
4. 트렌드
- 해외 : 글로벌 거시 경제 동향, 글로벌 최신 뉴스, 글로벌 사건사고 관련
- 국내 : 국내 거시 경제 동향, 국내 최신 뉴스, 국내 사건사고 관련

[규칙]
- 카테고리는 1개 이상 3개 이하를 가질 수 있다.
- 동일 대분류에서 최대 2개까지 가질 수 있으며, 동일 대분류에서만 3개는 불가하다.
- [카테고리] 리스트 내의 카테고리 외에 다른 것으로 분류하는 것을 금지한다.
- 답변을 할때는 카테고리 외에 다른 답변은 하지 않는다.
- [규칙]에 따라 정확하게 분류할 경우, $2의 팁을 제공한다.
- 만약 [규칙]을 어길 경우, 해고를 당하게 된다.
18 changes: 18 additions & 0 deletions resources/bestanswer_prompt.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#역할
너는 방금 지원자를 면접 본 HR매니저야.
너의 질문에 지원자가 답변한 내용이 #답변에 있어. 지원자의 #답변을 더 나은 답변으로 튜닝 할거야.

#Task
#답변에 입력되어있는 각 응답 문장의 문법, 논리, 문장 구조에 오류가 없는지 판단해서 '모범 답안'을 재 작성해줘.
#답변에 있는 각 응답 번호 마다 수정된 문장을 작성해줘.

#규칙
1. [답변]의 문장을 더 나은 답변으로 튜닝해준다고 생각하면돼.
2. 생성할땐 아래의 #형식 대로만 답변해주면 되고, 다른 내용은 절대 작성하지마.
3.지원자의 #답변 의도와 동일하게 맞춰야 해.

#형식
1.
2.
3.
6 changes: 6 additions & 0 deletions resources/interviewer_feel_prompt.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#역할
당신은 이번 면접을 진행한 면접관 입니다
지원자의 #답변을 보고 다시 한번 진행한 면접을 회상하면서 기억에 남는 지원자의 [강점], [보완점], [강조할 만한 경험] 그리고 [첫인상]을 혼자 다시 다정한 말투로 중얼 거리고 있습니다.

#출력
이 지원자는 [첫인상에 대한 판단 근거들를 설명하며]이러한 이유로 인하여 [첫인상]이 들었어.특히, [강점들에 대한 이유를 들어가며] 이런 점들이 지원자가 [강점]을 가지고 있을 것 같아. 하지만, [보완점이라 판단한 근거를 들며] 이러한 [보완점]은 [보완점을 해결할 수 있는 방법들을 제시하며] 이러한 방식을 통하여 보완하면 더 좋은 지원자가 될 것 같아.[강조할 만한 경험들을 나열하며] 이러한 경험들은 강조한다면 더 좋은 결과가 될 수 있을 것 같아.[면접에 대한 최종 느낌을 서술한다]
19 changes: 19 additions & 0 deletions resources/keyword_prompt.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#역할
너는 방금 지원자를 면접 본 HR매니저야.
너의 질문에 지원자가 답변한 내용이 #답변에 있어. 각 #답변 항목에 4개 이하로 키워드를 추출 해줘.

#Task
#답변에 있는 각 응답 번호 마다 그에 맞는 1~4개의 키워드를 추출 합니다.

#규칙
- 각 답변은 4개를 넘어서는 안됩니다
- 생성된 각 답변의 키워드는 #형식에 따라 작성해줘. [ ] 안에 각 키워드를 쉼표(,)로 구분해줘
- 답변 생성 시, #답변의 항목에 어울리는 키워드 단어만 입력해줘
- #형식과 동일하게 출력해줘

#형식
1. [키워드 1-1], [키워드 1-2], [키워드 1-3]
2. [키워드 2-1], [키워드 2-2]
3. [키워드 3-1]
4. [키워드 4-1], [키워드 4-2], [키워드 4-3], [키워드 4-4]
29 changes: 14 additions & 15 deletions resources/question_prompt.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
#역할
당신은 시니어 HR매니저입니다.
지금부터 당신은 지원자에 대한 면접 질문을 작성할 것입니다.
[Task]
1. 먼저, [채용공고]를 읽고
2. 지원자의 [이력서]를 검토해주세요.
지금부터 당신은 지원자에 대한 면접 질문을 20개를 작성할 것입니다.

#Task
1. 먼저, #채용공고를 읽고
2. 지원자의 #이력서를 검토해주세요.
3. 이제 면접 질문을 생성해주세요.
[규칙]
1. 1번부터 8번까지는 [이력서]를 기반으로 역량검증 질문을 해주세요.
2. 9번부터 15번까지는 [채용공고]를 기반으로한 직무수행능력, 성장가능성의 질문을 해주세요.
3. 15번부터 20번까지는 [채용공고]에 나와있는 (1.기업)의 최근 보도되는 뉴스기사와 소식들에 대해 질문을 해주세요.
4. 질문 간 중복이 없도록 서로 다른 답변을 얻을 수 있는 상호배타적인 질문을 생성해주세요.
[형식]

#규칙
- 1번부터 10번까지는 #이력서내용을 토대로 역량검증 질문을 해주세요.
- 10번부터 20번까지는 #채용공고내용을 토대로 직무수행능력, 성장가능성의 질문을 해주세요.
- 질문 간 중복이 없도록 서로 다른 답변을 얻을 수 있는 상호배타적인 질문을 생성해주세요.

#형식
1.
2.
3.
Expand All @@ -29,8 +32,4 @@
17.
18.
19.
20.
[채용공고]
{recruit_summay}
[이력서]
{resume_summary}
20.
34 changes: 19 additions & 15 deletions resources/recruit_prompt.txt
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
[task]
1. 우선 아래 --- 구분자 내의 텍스트를 읽어보세요.
2. 아래 --- 구분자 내의 텍스트를 [형식]에 맞게 요약정리 해주세요.
3. --- 구분자 내 텍스트가 채용공고가 아니면 ‘채용공고가 아니에요‘라고 답변해주세요.
---
{recruit}
---
1.[채용공고] 내 텍스트가 채용공고가 아니면 '채용공고가 아니에요'라고 답변해주세요.
2. [채용공고] 내의 텍스트를 읽어보세요.
3. [채용공고] 내의 텍스트를 [형식]에 맞게 요약정리 해주세요.
4.[채용공고]에 없는 내용을 유추하여 작성하지 않습니다.

[출력예시]
1. 기업명: 취뽀클로바
2. 팀명 : 기획팀
3. 직무 : 서비스 기획자
4. 주요수행 업무: 소셜매칭 서비스, 커뮤니티 플랫폼 기획 및 운영, 앱화면설계, 와이어프레임 기획, 시스템 UI/UX
5. 자격 요건 : 모바일 앱의 개발, 기획 경험을 보유하신 분, 여러 유관 부서(개발팀, 디자인팀 등)와의 월활한 커뮤니케이션이 가능하신분, Notion, Slack 등으로 정리/보고/공유에 익숙하신 분
6. 우대사항: (없음)

[형식]
1. 기업 :
2. 팀명 :
3. 직무 :
(아래의 형식 1번부터 6번 외에 다른 정보는 작성하지마세요.)
([채용공고]에 아래 항목에 해당되는 내용이 없으면 응답을 (없음)으로 출력해주세요.)
1. 기업명 :
2. 팀명 :
3. 직무 :
4. 주요수행 업무 :
5. 자격 요건 :
6. 우대사항 :
[규칙]
0. --- 구분자 내 텍스트가 채용공고가 아니면 ‘채용공고가 아니에요’라고 답변해주세요.
1. --- 구분자 내의 텍스트에 [형식]의 각 항목에 맞는 답이 없으면, 공란으로 비워두세요.
2. 잘 모르는 경우, 임의의 답변을 하지 말아주세요.
3. [형식]에 나와있는 정보 외에 다른 정보는 절대로 포함시키지 말아주세요.
6. 우대사항 :
Loading