๐Ÿ’ป ํ”„๋กœ์ ํŠธ/๐ŸŽ“ RESUMAI

[RESUMAI] 5. ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ƒ์„ฑ ๋ฐ๋ชจ ์„œ๋น„์Šค

2024. 1. 3. 18:20
๋ชฉ์ฐจ
  1. 1. RAG ๊ณผ์ • ๊ตฌํ˜„
  2. 1. Retrieve
  3. 2. Augment: ํ”„๋กฌํ”„ํŒ…
  4. 3. Generate
  5. 2. ๊ฒฐ๊ณผ
  6. 3. ๊ฐœ์„ ์  ๋ฐ ์ถ”๊ฐ€๊ธฐ๋Šฅ
  7. ๊ฐœ์„ ์ 
  8. ์ถ”๊ฐ€ ๊ธฐ๋Šฅ

์ง€๋‚œ ๊ธ€์—์„œ ์ž‘์—…ํ•œ ๊ฒƒ์„ ๋ฐ”ํƒ•์œผ๋กœ, ๋ฐ๋ชจ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์€ ํ•ด๋‹น ๋ฐ๋ชจ๋ฅผ ๋งŒ๋“ค ๋•Œ์˜ ๊ธฐ๋ก์ด๋‹ค.


1. RAG ๊ณผ์ • ๊ตฌํ˜„

์ง€๋‚œ๋ฒˆ์—๋Š” pinecone์— ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž‘์—…๊นŒ์ง€ ์™„๋ฃŒํ–ˆ์œผ๋‹ˆ, ์ด์ œ๋Š” ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๊ธ€๊ณผ ์œ ์‚ฌ๋„๊ฐ€ ๋†’์€ k๊ฐœ์˜ ํ•ญ๋ชฉ์„ ๊ฐ€์ ธ์™€, ํ”„๋กฌํ”„ํŠธ์— ์˜ˆ์‹œ๋กœ ๋„ฃ์–ด, ์ƒˆ๋กœ์šด ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ผ๋งŒ ๋‚จ์•˜๋‹ค.

1. Retrieve

๋จผ์ €, query๋ฅผ embedding ํ•˜๊ณ , pinecone์—์„œ ์œ ์‚ฌํ•œ 3๊ฐœ์˜ ํ•ญ๋ชฉ์„ ๊ฐ€์ ธ์˜จ๋‹ค.

์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

if st.button("์ƒ์„ฑํ•˜๊ธฐ!"):
    pinecone.init(api_key=st.secrets["PINECONE_API_KEY"], environment="gcp-starter")
    index = pinecone.Index("resumai-self-introduction-index")

    query_embedding = get_embedding(user_answer) # ์œ ์ €๊ฐ€ ์งˆ๋ฌธ์— ๋‹ต๋ณ€ํ•œ ๊ฒƒ์„ ์ž„๋ฒ ๋”ฉ

    retrieved_data = index.query(vector=query_embedding, top_k=3, include_metadata=True) # ์œ ์‚ฌํ•œ top 3๊ฐœ์˜ ๋‹ต๋ณ€

    data = retrieved_data["matches"]

    data_1_question = data[0]["metadata"]["question"]
    data_1_answer = data[0]["metadata"]["answer"]

    data_2_question = data[1]["metadata"]["question"]
    data_2_answer = data[1]["metadata"]["answer"]

    data_3_question = data[2]["metadata"]["question"]
    data_3_answer = data[2]["metadata"]["answer"]

์ด๋ ‡๊ฒŒ index.query() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด, ๊ฐ„๋‹จํ•˜๊ฒŒ top 3๊ฐœ์˜ ์œ ์‚ฌํ•œ ๋ฌธ์žฅ๋“ค๊ณผ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

2. Augment: ํ”„๋กฌํ”„ํŒ…

๋จผ์ €, RESUMAI์™€ ๊ด€๋ จ๋œ 2๋ฒˆ์งธ ๋ธ”๋กœ๊ทธ์—์„œ ์‹คํ—˜ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ, 3-shot์„ ํฌํ•จํ•œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ–ˆ๋‹ค:

GENERATE_SELF_INTRODUCTION_PROMPT = f"""
์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๋ฐ, ๋‹ค์Œ ์งˆ๋ฌธ์— ๋‹ตํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
Question: {{question}} \n

์งˆ๋ฌธ์— ๋Œ€ํ•œ ์ €์˜ ๋Œ€๋‹ต์€ ๋‹ค์›€๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
Context: {{context}} \n

์•„๋ž˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.
examples: \n {{examples}} 

์˜ˆ์‹œ๋“ค๊ณผ ์ €์˜ ๋‹ต๋ณ€์„ ์ฐธ๊ณ ํ•˜์—ฌ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋Œ€๋‹ต์„ ํ•ด ์ฃผ์„ธ์š”.
"""

์—ฌ๊ธฐ์„œ question์€ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•  ์งˆ๋ฌธ์ด๊ณ , context๋Š” ๋‚˜์˜ ๋Œ€๋‹ต, examples๋Š” pinecone์œผ๋กœ ์ฐพ์€ ์˜ˆ์‹œ๋“ค์ด๋‹ค.

examples = (
        f"Question: {data_1_question}, \n Answer: {data_1_answer}, \n\n "
        f"Question: {data_2_question}, \n Answer: {data_2_answer}, \n\n "
        f"Question: {data_3_question}, \n Answer: {data_3_answer}"
    )

prompt = GENERATE_SELF_INTRODUCTION_PROMPT.format(
    examples=examples, question=question, context=user_answer
)

print(prompt)

์ด๋ ‡๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰์‹œ์ผœ ๋ณด๋‹ˆ, ํ”„๋กฌํ”„ํŠธ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์•˜๋‹ค.

์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๋ฐ, ๋‹ค์Œ ์งˆ๋ฌธ์— ๋‹ตํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
Question: ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฒฝํ—˜ 


์งˆ๋ฌธ์— ๋Œ€ํ•œ ์ €์˜ ๋Œ€๋‹ต์€ ๋‹ค์›€๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
Context: ์ด๋ฒˆ ์—ฌ๋ฆ„ ๋ฐฉํ•™ ๋•Œ, ์‡ผํ•‘๋ชฐ ์†”๋ฃจ์…˜ ๊ฐœ๋ฐœ ์—…์ฒด์—์„œ 2๋‹ฌ ๋™์•ˆ ์ธํ„ด์œผ๋กœ ๊ทผ๋ฌดํ–ˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ด์„ ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋‹น์‹œ, ์‡ผํ•‘๋ชฐ์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ํšŒ์› ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ฆฌ์ž ์‹œ์Šคํ…œ์ด ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ, ๊ทธ๋ฆฌ๊ณ  ์›น์ƒ์—์„œ ์–ด๋– ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•œ ๊ณผ์ œ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ณผ์ œ๋Š” ๊ฐ€์ƒ์˜ ์‡ผํ•‘๋ชฐ์„ ๋งŒ๋“ค๊ณ  ์‡ผํ•‘๋ชฐ์˜ ํšŒ์›๊ฐ€์ž… ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ฆฌ์ž ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์‡ผํ•‘๋ชฐ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋ฒ„, HTML, ํ˜ธ์ŠคํŒ…, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์˜. ๋‹น์‹œ ์ €๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ด€ํ•œ ์ง€์‹๋งŒ ์žˆ๋˜ ์ƒํƒœ์—ฌ์„œ ์ง„ํ–‰์„ ์œ„ํ•œ ํฐ ๊ทธ๋ฆผ์กฐ์ฐจ ๊ทธ๋ ค์ง€์ง€ ์•Š์„ ์ •๋„๋กœ ๋ง‰๋ง‰ํ•œ ์ƒํƒœ์˜€์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์œผ๋กœ ์›น์˜ ํ‘œ์ค€์ธ HTML๋ถ€ํ„ฐ ์„œ๋ฒ„ ์ธก ์–ธ์–ด์ธ PHP ๋“ฑ ๊ณผ์ œ ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ์ง€์‹์„ ํ•˜๋‚˜ ๋‘˜์”ฉ ์Šต๋“ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ง€๋‚œ ๋’ค HTML๊ณผ PHP ๊ฐ๊ฐ์— ๋Œ€ํ•œ ์ง€์‹์€ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ๊ฐ์ข… ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ , ์ฑ…์„ ์ฝ์–ด๋ณด์•˜์ง€๋งŒ ์ด ๋‘˜์˜ ๊ด€๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ์„ค๋ช…ํ•ด ๋†“์€ ๊ณณ์€ ์—†๊ณ , ๊ฒฐ๊ตญ ๋ฌด์ž‘์ • ๊ณผ์ œ ํ•ด๊ฒฐ์— ๋Œ์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ง์ ‘ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ฒช์œผ๋ฉฐ ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋‹ˆ ์ ์  HTML๊ณผ PHP ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ  ํ›„์—๋Š” ์™„์ „ํžˆ ์ดํ•ดํ•˜๊ฒŒ ๋˜์–ด ์„ฑ๊ณต์ ์œผ๋กœ ๊ฐ„๋‹จํ•œ ์‡ผํ•‘๋ชฐ ๊ตฌ์ถ•์— ์„ฑ๊ณตํ•˜์˜€์Šต๋‹ˆ๋‹ค. 


์•„๋ž˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.
examples: 
Question: ์ตœ๊ทผ 5๋…„ ์ด๋‚ด์— ํ–ˆ๋˜ ๊ฒฝํ—˜ ์ค‘ ๊ฐ€์žฅ ๋งŽ์€ ์ •๋ณด๋‚˜ ์˜๊ฒฌ์„ ์ˆ˜์ง‘, ์ข…ํ•ฉํ•˜๊ณ  ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋˜ ๊ฒฝํ—˜์— ๋Œ€ํ•ด ๊ตฌ์ฒด์ ์œผ๋กœ ์„œ์ˆ ํ•˜์‹ญ์‹œ์˜ค. (700์ž 10 ๋‹จ๋ฝ ์ด๋‚ด), 
Answer: ์ด๋ฒˆ ์—ฌ๋ฆ„ ๋ฐฉํ•™ ๋•Œ, ์‡ผํ•‘๋ชฐ ์†”๋ฃจ์…˜ ๊ฐœ๋ฐœ ์—…์ฒด์—์„œ 2๋‹ฌ ๋™์•ˆ ์ธํ„ด์œผ๋กœ ๊ทผ๋ฌดํ–ˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ด์„ ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋‹น์‹œ, ์‡ผํ•‘๋ชฐ์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ํšŒ์› ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ฆฌ์ž ์‹œ์Šคํ…œ์ด ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ, ๊ทธ๋ฆฌ๊ณ  ์›น์ƒ์—์„œ ์–ด๋– ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•œ ๊ณผ์ œ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ณผ์ œ๋Š” ๊ฐ€์ƒ์˜ ์‡ผํ•‘๋ชฐ์„ ๋งŒ๋“ค๊ณ  ์‡ผํ•‘๋ชฐ์˜ ํšŒ์›๊ฐ€์ž… ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ฆฌ์ž ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์‡ผํ•‘๋ชฐ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋ฒ„, HTML, ํ˜ธ์ŠคํŒ…, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์˜์‹๋งŒ ์žˆ๋˜ ์ƒํƒœ์—ฌ์„œ ์ง„ํ–‰์„ ์œ„ํ•œ ํฐ ๊ทธ๋ฆผ์กฐ์ฐจ ๊ทธ๋ ค์ง€์ง€ ์•Š์„ ์ •๋„๋กœ ๋ง‰๋ง‰ํ•œ ์ƒํƒœ์˜€์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์œผ๋กœ ์›น์˜ ํ‘œ์ค€์ธ HTML๋ถ€ํ„ฐ ์„œ๋ฒ„ ์ธก ์–ธ์–ด์ธ PHP ๋“ฑ ๊ณผ์ œ ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ์ง€์‹์„ ํ•˜๋‚˜ ๋‘˜์”ฉ ์Šต๋“ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ง€๋‚œ ๋’ค HTML๊ณผ PHP ๊ฐ๊ฐ์— ๋Œ€ํ•œ ์ง€์‹์€ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ๊ฐ์ข… ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ , ์ฑ…์„ ์ฝ์–ด๋ณด์•˜์ง€๋งŒ ์ด ๋‘˜์˜ ๊ด€๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ์„ค๋ช…ํ•ด ๋†“์€ ๊ณณ์€ ์—†๊ณ , ๊ฒฐ๊ตญ ๋ฌด์ž‘์ • ๊ณผ์ œ ํ•ด๊ฒฐ์— ๋Œ์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ง์ ‘ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ฒช์œผ๋ฉฐ ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋‹ˆ ์ ์  HTML๊ณผ PHP ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ  ํ›„์—๋Š” ์™„์ „ํžˆ ์ดํ•ดํ•˜๊ฒŒ ๋˜์–ด ์„ฑ๊ณต์ ์œผ๋กœ ๊ฐ„๋‹จํ•œ ์‡ผํ•‘๋ชฐ ๊ตฌ์ถ•์— ์„ฑ๊ณตํ•˜์˜€์Šต๋‹ˆ๋‹ค.
๊ธ€์ž์ˆ˜ 692์ž
1,168Byte, 

Question: ๋‹ค์–‘ํ•œ ์˜๊ฒฌ์ด๋‚˜ ์ •๋ณด๋ฅผ ์ž์‹ ์˜ ๊ธฐ์ค€์œผ๋กœ ๋ถ„์„ / ํŒ๋‹จํ•˜๊ณ , ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋˜ ๊ฒฝํ—˜์— ๋Œ€ํ•ด์„œ ์„œ์ˆ ํ•˜์‹œ์˜ค. - ์ตœ๊ทผ 5๋…„ ์ด๋‚ด์˜ ๊ฒฝํ—˜์œผ๋กœ ์ž‘์„ฑํ•  ๊ฒƒ - ๋ถ„์„ํ•œ ์˜๊ฒฌ ๊ฒƒ (700 ์ž 10 ๋‹จ๋ฝ ์ด๋‚ด), 
Answer: ์ด๋ฒˆ ์—ฌ๋ฆ„ ๋ฐฉํ•™ ๋•Œ, ์‡ผํ•‘๋ชฐ ์†”๋ฃจ์…˜ ๊ฐœ๋ฐœ ์—…์ฒด์—์„œ 2๋‹ฌ ๋™์•ˆ ์ธํ„ด์œผ๋กœ ๊ทผ๋ฌดํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณผ์ œ๋Š” ๊ฐ€์ƒ์˜ ์‡ผํ•‘๋ชฐ์„ ๋งŒ๋“ค๊ณ  ์‡ผํ•‘๋ชฐ์˜ ํšŒ์›๊ฐ€์ž… ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ฆฌ์ž ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์‡ผํ•‘๋ชฐ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋ฒ„, HTML, ํ˜ธ์ŠคํŒ…, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์˜ ์ง€์‹์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹œ ์ €๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ด€ํ•œ ์ง€์‹๋งŒ ์žˆ๋˜ ์ƒํƒœ์—ฌ์„œ ์‡ผํ•‘๋ชฐ ์„ค๊ณ„์˜ ํฐ ๊ทธ๋ฆผ์กฐ์ฐจ ๊ทธ๋ ค์ง€์ง€ ์•Š์„ ์ •๋„๋กœ ๋ง‰๋ง‰ํ•œ ์ƒํƒœ์˜€์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์œผ๋กœ ์›น์‚ฌ์ดํŠธ ์ œ์ž‘์˜ ํฐ ํ‹€์„ ๋ถ„์„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์›น์‚ฌ์ดํŠธ ์ œ์ž‘์—๋Š” ์„œ๋ฒ„ ์ธก, ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด์™€ ์ด๋กœ ์ด๋ฃจ์–ด์ง„ ํŽ˜์ด์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ฐ์ข… ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ข… ์„œ์ ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์›น์˜ ํ‘œ์ค€์ธ HTML๋ถ€ํ„ฐ ์„œ๋ฒ„ ์ธก ์–ธ์–ด์ธ PHP ๋“ฑ ๊ณผ์ œ ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ์–ธ์–ด๋Š” ์ตํ˜”์ง€๋งŒ, ํ”„๋ก ํŠธ์—”๋“œ ํŽ˜์ด์ง€์™€ ๋ฐฑ์—”๋“œ ํŽ˜์ด์ง€ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ด ์–ด๋ ค์›€์„ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ธํ„ฐ๋„ท ๊ฐ•์ขŒ์™€ ๋‹ค์–‘ํ•œ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ํ†ตํ•ด HTML๊ณผ PHP ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ฒช์€ ํ›„์—๋Š” ์›น์‚ฌ์ดํŠธ์˜ ์ž‘๋™ ์›๋ฆฌ๋ฅผ ์™„์ „ํžˆ ์ดํ•ดํ•˜๊ฒŒ ๋˜์—ˆ๊ณ  ์„ฑ๊ณต์ ์œผ๋กœ ์‡ผํ•‘๋ชฐ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์„ฑ๊ณตํ•˜์˜€์Šต๋‹ˆ๋‹ค.
๊ธ€์ž์ˆ˜ 610์ž
1,036Byte, 

Question: ์ง€์›๋ถ„์•ผ์™€ ๊ด€๋ จ๋œ ํ•™์Šต๋‚ด์šฉ(ํ•™์ฐฝ์‹œ์ ˆ ์ด์ˆ˜๊ณผ๋ชฉํฌํ•จ)์ด๋‚˜ ํ™œ๋™์‚ฌํ•ญ(์—…๋ฌด์ˆ˜ํ–‰๊ฒฝํ—˜์€ ์ขŒ์ธก ํšŒ์‚ฌ๊ฒฝ๋ ฅํƒญ ํ”„๋กœ์ ํŠธ ๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ๋ž€์— ๊ธฐ์žฌ), 
Answer: ์ปดํ“จํ„ฐ๊ณตํ•™์„ ์ „๊ณตํ•˜๋ฉฐ ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ถ„์•ผ์— ๊ด€์‹ฌ์„ ๊ฐ–๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•™๊ณผ ๋‚ด ์ˆ˜์—…์ด ๊ฐœ์„ค๋˜์ง€ ์•Š์•„ ์ •์‹์œผ๋กœ ๋ฐฐ์šด ๊ฒฝํ—˜์ด ์—†์–ด ๋…ํ•™์œผ๋กœ HTML๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ดˆ๊ธ‰ ๊ธฐ์ˆ ๋งŒ์„ ์ตํžˆ๊ณ  ์žˆ๋˜ ์ƒํ™ฉ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋˜ ์ค‘ ํ•œ๊ตญ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ง„ํฅ์›์—์„œ ์ง„ํ–‰ํ•˜๋Š” Database ๊ฐœ๋ฐœ์ž ์–‘์„ฑ๊ณผ์ •์— ์ฐธ์—ฌํ•˜์—ฌ ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ถ„์•ผ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ํ•™์Šตํ•˜๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ์Œ“์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ํŒ€ ํ”„๋กœ์ ํŠธ์˜ ์ฃผ์ œ๋Š” ์ž์ทจ์ƒ๋“ค์˜ ์œคํƒํ•œ ์ƒํ™œ์„ ๋•๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ๋กœ ์„ ์ •ํ•˜์˜€๊ณ , ์ž์ทจํ•˜๋Š” ํ‹ฐ๋ฅผ ๊ฐ์ถ˜๋‹ค๋Š” ์˜๋ฏธ๋กœ ์ œ๋ชฉ์€ โ€˜์ž์ทจ๋ฅผ ๊ฐ์ถ”๋‹คโ€™๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋™ํ˜ธํšŒ, ๊ณต๋™๊ตฌ๋งค ๋“ฑ ์ž์ทจ์ƒ๋“ค์—๊ฒŒ์žˆ๋Š” โ€˜๋‚˜์˜ ๋ƒ‰์žฅ๊ณ โ€™ ๊ธฐ๋Šฅ์„ ๊ณ ์•ˆํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ž์ทจ์ƒ์ด ๊ฐ„ํŽธํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์š”๋ฆฌ ๋ ˆ์‹œํ”ผ๋ฅผ ์†Œ๊ฐœํ•˜๊ณ , ๋ ˆ์‹œํ”ผ ๋ณ„ ์žฌ๋ฃŒ๋ฅผ ๋“ฑ๋กํ•˜์—ฌ ๊ฐ€์ง„ ์žฌ๋ฃŒ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์š”๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐํšํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ๋Š” ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›์„ ํ™œ์šฉํ•˜์—ฌ MVC ํŒจํ„ด์œผ๋กœ ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์˜ค๋ผํด๋กœ ๊ตฌ์ถ•ํ•˜์˜€๊ณ  mybatis๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” JSP๋กœ ์ž‘์„ฑํ•˜์˜€์œผ๋ฉฐ AJAX๋ฅผ ํ™œ์šฉํ•˜ ๊ฐœ๋ฐœํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜ ๊ธ€์„ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒŒ์‹œํŒ์„ ๋งŒ๋“ค๊ณ  ๊ธ€ ์ž‘์„ฑ ํ™”๋ฉด์— ์—๋””ํ„ฐ๋ฅผ ์ ์šฉํ•˜์—ฌ ๋‚ด์šฉ์„ ๋‹ค์–‘ํ•˜๊ฒŒ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฒผ๋ฃฉ์‹œ์žฅ, ๋ ˆ์‹œํ”ผ ๋“ฑ์˜ ๊ฒŒ์‹œํŒ์—๋Š” ์‚ฌ์ง„์„ ํ•„์ˆ˜์ ์œผ๋กœ ์ฒจ๋‹ˆ๋‹ค. ๋ ˆ์‹œํ”ผ๋ฅผ ์—…๋กœ๋“œํ•  ๋•Œ์—๋Š” ํ•„์š”ํ•œ ์žฌ๋ฃŒ๋ฅผ ์ „์ฒด ์žฌ๋ฃŒ DB์—์„œ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๋“ฑ๋กํ•˜๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฒŒ์‹œํŒ์— ํŽ˜์ด์ง•์„ ๊ตฌํ˜„ํ•˜์˜€๊ณ , ํšŒ์›๋ณ„ ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ๋‚ด๊ฐ€ ์“ด ๊ธ€/๋Œ“๊ธ€์„ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ โ€˜๊ฐ€์ง„ ์žฌ๋ฃŒ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ ˆ์‹œํ”ผ ๊ฒ€์ƒ‰โ€™์„ ์œ„ํ•˜์—ฌ ๋งˆ์ดํŽ˜์ด์ง€์˜ โ€˜๋‚ด ์žฌ๋ฃŒ๋น„์Šค๋ฅผ ์ƒ์šฉํ™”ํ•˜์ง„ ๋ชปํ•˜์˜€์ง€๋งŒ, ์™„์„ฑ๋œ ํ”„๋กœ์ ํŠธ๋Š” ๋ฐœํ‘œ ํ›„ ํˆฌํ‘œ์—์„œ 1๋“ฑ ํŒ€์œผ๋กœ ์„ ๋ฐœ๋˜์—ˆ๊ณ , ํ˜„์žฌ ๊ต์œก ํ›„์†์œผ๋กœ ์ง„ํ–‰๋˜๋Š” ๋ฉ˜ํ† ๋ง์— ์ฐธ์—ฌํ•˜์—ฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธ€์ž์ˆ˜ 1,174์ž
2,017Byte 

์˜ˆ์‹œ๋“ค๊ณผ ์ €์˜ ๋‹ต๋ณ€์„ ์ฐธ๊ณ ํ•˜์—ฌ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋Œ€๋‹ต์„ ํ•ด ์ฃผ์„ธ์š”.

์žˆ์„ ์ •๋ณด๋Š” ๋‹ค ์žˆ์–ด๋ณด์—ฌ์„œ, ๊ธ€์ž์ˆ˜ ๋“ฑ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๋นผ๊ณ ๋Š” ๋‹ค ๊ดœ์ฐฎ์•„ ๋ณด์˜€๋‹ค.

 

3. Generate

๋งˆ์ง€๋ง‰์œผ๋กœ ํ”„๋กฌํ”„ํŠธ๊นŒ์ง€ ์™„์„ฑ๋์œผ๋‹ˆ, ChatGPT api๋ฅผ ํ™œ์šฉํ•˜์—ฌ generate ํ•˜๋Š” ๋‹จ๊ณ„๋งŒ ๋‚จ์•˜๋‹ค. ์ด์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค.

#lib/openai_call.py
def get_chat_openai(prompt, model="gpt-4"):
    response = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": prompt}],
        temperature=0,
    )
    output = response.choices[0].message.content
    return output

# GENERATE.py
answer = get_chat_openai(prompt)

if answer:
    st.success("๋‹ต๋ณ€์ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!")
    st.write(answer)
else:
	st.error("๋‹ต๋ณ€ ์ƒ์„ฑ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค..")

์ผ๋‹จ capathy๋‹˜์˜ ์กฐ์–ธ์— ๋”ฐ๋ผ gpt-4๋กœ ์ฝ”๋”ฉํ–ˆ๋‹ค.. ๋‚ด๋ˆ


2. ๊ฒฐ๊ณผ

Streamlit Share๋กœ ๋ฐฐํฌํ–ˆ๋Š”๋ฐ, ๋ฐฐํฌํ•œ ๊ณผ์ •์€ ์ƒ๋žตํ•˜๊ฒ ๋‹ค. ์ฐพ์•„๋ณด๋ฉด ์‰ฝ๊ณ , secret key๋ž‘ requirements.txt๋งŒ ์ฃผ์˜ํ•ด์„œ ์ž‘์„ฑํ•˜๋ฉด ๊ฑฐ์˜ ๋ฒ„ํŠผ ํ•œ๋‘ ๋ฒˆ ํด๋ฆญํ•˜๋Š” ํ˜•์‹์œผ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋ฐฐํฌ ๋งํฌ

 

RESUMAI

This app was built in Streamlit! Check it out and visit https://streamlit.io for more awesome community apps. ๐ŸŽˆ

resume-ai-demo.streamlit.app

์‹คํ—˜์€ 2๊ฐœ ์ •๋„์˜ ๋ฐ์ดํ„ฐ๋งŒ ์ผ๋‹จ ํ•ด๋ดค๋Š”๋ฐ, ํ•˜๋‚˜๋Š” ์—„์ฒญ ์„ฑ์˜ ์—†๊ฒŒ ์“ด ๋‹ต๋ณ€, ๋‚˜๋จธ์ง€ ํ•˜๋‚˜๋Š” ๊ฝค ์„ฑ์˜ ์žˆ๊ฒŒ ์“ด ํผ์˜จ ๋‹ต๋ณ€์ด๋‹ค.

๋‘ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์‹คํ—˜ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•˜๋‹ค.

์•„๋ฌด๋ž˜๋„ ์„ฑ์˜ ์—†๊ฒŒ ์“ด ์ž๊ธฐ์†Œ๊ฐœ์„œ ๋‹ต๋ณ€์ด ํ›จ์”ฌ ๋” ๋“œ๋ผ๋งˆํ‹ฑํ•œ ๋ณ€ํ™”์ฒ˜๋Ÿผ ๋А๊ปด์ง€๊ธด ํ•œ๋‹ค. ใ…‹ใ…‹ใ…‹ใ…‹


3. ๊ฐœ์„ ์  ๋ฐ ์ถ”๊ฐ€๊ธฐ๋Šฅ

๋ง‰์ƒ ์ด๋ ‡๊ฒŒ ๋ฐฐํฌ๋„ ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ด ๋ณด๋‹ˆ ๋‚˜์˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ, ์กฐ๊ธˆ ๋” ์ข‹์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”์œผ๋ฉด ํ•ด์„œ ์–ด๋–ป๊ฒŒ ๊ฐœ์„ ์‹œ์ผœ ๋ณผ ์ˆ˜ ์žˆ์„์ง€ ์ƒ๊ฐํ•ด ๋ณด์•˜๋‹ค.

๊ฐœ์„ ์ 

๊ฐ€์žฅ ๋จผ์ € ๋– ์˜ค๋ฅธ ๋ฐฉ๋ฒ•์€ ๊ฐ€์ ์š”์†Œ๋ฅผ ํ”„๋กฌํ”„ํŠธ์— ๋„ฃ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

๋ง ๊ทธ๋Œ€๋กœ ์„ ํƒํ•œ ์งˆ๋ฌธ์— ๋Œ€ํ•ด, ๋‹ต๋ณ€์˜ ์–ด๋А ๋ถ€๋ถ„์„ ๊ฐ•์กฐํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ํ”„๋กฌํ”„ํŒ….

์ด์ „์— 8๊ฐ€์ง€์˜ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋†“๊ณ  ์‹คํ—˜ํ•ด ๋ณด์•˜์„ ๋•Œ, ๊ฐ€์ ์š”์†Œ๋ฅผ ํ”„๋กฌํ”„ํŠธ์— ์ œ์‹œํ–ˆ์„ ๋•Œ ๋” ๋†’์€ ํ€„๋ฆฌํ‹ฐ์˜ ๋‹ต๋ณ€์„ ์ƒ์„ฑํ–ˆ์—ˆ๋‹ค.

  • ์˜ˆ์‹œ: ์ง€์›๋™๊ธฐ
  • ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ง€์›๋™๊ธฐ๋Š” โ€˜๋‚ด๊ฐ€ ์‹ ์ค‘ํ•˜๊ฒŒ ๊ณจ๋ผ์„œ ์ง€์›ํ•œ ํšŒ์‚ฌโ€™๋ผ๋Š” ๋А๋‚Œ์„ ์ฃผ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ž๊ธฐ ๋ถ„์„(์ง์—…๊ด€, ์„ฑํ–ฅ ๋“ฑ)๊ณผ ํšŒ์‚ฌ๋ถ„์„์„ ํ†ตํ•ด ์ง€์› ์ด์œ ์˜ ์—ฐ๊ฒฐ๊ณ ๋ฆฌ๋ฅผ ์ฐพ์•„์•ผ ํ•œ๋‹ค. ํšŒ์‚ฌ ํ™ˆํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด ํšŒ์‚ฌ์˜ ๋น„์ „๊ณผ ์ฃผ๋ ฅ์‚ฌ์—… ํ˜„ํ™ฉ, ํ–ฅํ›„ ๊ฒฝ์Ÿ๋ ฅ ๋“ฑ์„ ํŒŒ์•…ํ•˜๊ณ , ๋ณธ์ธ์˜ ์ง์—…๊ด€๊ณผ ์—ฐ๊ฒฐ์‹œ์ผœ ํšŒ์‚ฌ์— ๋Œ€ํ•œ ์• ์ •์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. - ํšŒ์‚ฌ์˜ ๋น„์ „๊ณผ ๋ฌธํ™”, ์‚ฌ์—… ๋ฐฉํ–ฅ์„ฑ ๋“ฑ๊ณผ ๋ณธ์ธ์˜ ์ง์—…๊ด€ ๋“ฑ์„ ์—ฎ์–ด ์ ‘์ ์„ ์ œ์‹œํ–ˆ๋‹ค๋ฉด, ์ง€์›ํ•œ ์ง๋ฌด์˜ ํ•ต์‹ฌ์—ญ๋Ÿ‰๊ณผ ์ž์‹ ์˜ ๊ฐ•์ /๊ฒฝํ—˜์„ ์—ฐ๊ฒฐ์‹œ์ผœ ์ง€์› ์ด์œ ๋ฅผ ๋”์šฑ ๋ณด๊ฐ•ํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•˜๋‹ค. - ์ง€์›๋™๊ธฐ์™€ ์ž…์‚ฌ ํ›„ ํฌ๋ถ€๋ฅผ ํ•œ ๋ฌธํ•ญ์— ํ•จ๊ป˜ ๋ฌผ์–ด๋ณด๋Š” ๊ฒฝ์šฐ๋„ ์ข…์ข… ์žˆ๋‹ค. ํšŒ์‚ฌ์™€ ์ง๋ฌด์— ์ ํ•ฉํ•œ ๋ณธ์ธ์˜ ๊ฐ•์ ๊ณผ ๋”๋ถˆ์–ด ์ž…์‚ฌํ•˜๊ธฐ ์œ„ํ•ด ์ง€๊ธˆ๊นŒ์ง€ ํ•ด ์˜จ ๋…ธ๋ ฅ๋“ค์„ ๊ทผ๊ฑฐ๋กœ, ์ž…์‚ฌ ํ›„ ์กฐ์ง์˜ ๊ตฌ์„ฑ์›์œผ๋กœ์„œ ๋ฌด์Šจ ์ผ์„ ํ•˜๊ณ  ์–ด๋–ค ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ณ  ์‹ถ์€์ง€ ๋งํ•ด ์ฃผ๋ฉด ์ข‹๋‹ค. ๋‹ฌ์„ฑ ๋ชฉํ‘œ์˜ ๊ฒฝ์šฐ ํ˜„์‹ค์„ฑ ์žˆ๋Š” ๊ธฐ๊ฐ„๊ณผ ๋ชฉํ‘œ์น˜๋ฅผ ์ œ์‹œํ•œ๋‹ค๋ฉด ๋”์šฑ ๊ธ์ •์ ์ธ ์ธ์ƒ์„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๋‹ค.

๋ณดํŽธ์ ์ธ ์งˆ๋ฌธ๋“ค์— ๋Œ€ํ•ด, ๊ฐ ์งˆ๋ฌธ๋ณ„๋กœ ์–ด๋–ค ๊ฐ€์ ์š”์†Œ๊ฐ€ ์žˆ์„์ง€ ๋ฆฌ์„œ์น˜ํ•˜์—ฌ, ์–ด๋–ค ์งˆ๋ฌธ์„ ์„ ํƒํ•˜๋ฉด ๊ทธ ์งˆ๋ฌธ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ€์ ์š”์†Œ๊ฐ€ ํ”„๋กฌํ”„ํŒ… ๋˜๋„๋ก ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ์‚ฌ๋žŒ์ธ ์ž๊ธฐ์†Œ๊ฐœ์„œ ๊ฐ€์ด๋“œ๋ผ์ธ

  • ๋‚˜์ค‘์—๋Š” ๋ณดํŽธ์ ์ธ ์งˆ๋ฌธ๋“ค์ด ์•„๋‹Œ, ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๋งˆ์ฃผํ•œ ์งˆ๋ฌธ์„ ์ž‘์„ฑํ•˜๊ฒŒ ํ•  ์˜ˆ์ •์ธ๋ฐ, ์ด ๊ฒฝ์šฐ์—๋Š” LLM์—๊ฒŒ ์–ด๋–ค ๋ถ€๋ถ„์„ ๊ฐ•์กฐํ•ด์•ผ ํ• ์ง€์— ๋Œ€ํ•ด์„œ ๋ฌผ์–ด๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

์ถ”๊ฐ€ ๊ธฐ๋Šฅ

์ด ์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๋ฉด์„œ, ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์š•์‹ฌ์ด ๋” ์ƒ๊ฒจ๋‚ฌ๋‹ค.

  1. ์ž๊ธฐ์†Œ๊ฐœ์„œ ๊ฐ€์ด๋“œ๋ผ์ธ ์ œ์‹œ
    • ์„ ํƒํ•œ ์งˆ๋ฌธ์— ๋Œ€ํ•ด์„œ LLM์—๊ฒŒ ๊ฐ€์ด๋“œ๋ผ์ธ์„ ๋งŒ๋“ค์–ด๋‹ฌ๋ผ๊ณ  ํ•˜๊ณ , ์ž…๋ ฅ๋ž€์— ์ƒ์„ฑ๋œ ๊ฐ€์ด๋“œ๋ผ์ธ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค.
  2. ์‹ค์‹œ๊ฐ„ ๊ธฐ์—… ์ •๋ณด ํ”„๋กฌํ”„ํŒ…
    • ํ˜„์žฌ ๊ธฐ์—…์ด ์–ด๋–ค ๋ฐฉํ–ฅ์œผ๋กœ ์ง‘์ค‘ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋“ฑ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ณ , ํ•ด๋‹น ์ •๋ณด๋ฅผ ํ”„๋กฌํ”„ํŠธ์— ๋„ฃ๋Š” ๊ฒƒ์ด๋‹ค.
    • ์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š”, ์ž์‹ ์ด ์ง€์›ํ•  ๊ธฐ์—…์„ ์ž‘์„ฑํ•ด์„œ, ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ•ด๋‹น ๊ธฐ์—…์— ๋Œ€ํ•œ ๊ธฐ์‚ฌ๋ฅผ ํฌ๋กค๋งํ•ด ์˜ค๋Š” ๊ฒƒ์€ ๋ง๋„ ์•ˆ ๋œ๋‹ค.
    • ๋”ฐ๋ผ์„œ, 10๊ฐœ ๋‚ด์™ธ์˜ ์‹ค์‹œ๊ฐ„ ๊ธฐ์—… ์ •๋ณด๋ฅผ ํฌ๋กค๋งํ•ด์˜ค๋Š” ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜์—ฌ DB์— ์ €์žฅํ•ด ๋†“๊ณ , ์‚ฌ์šฉ์ž๋“ค์ด ํ•ด๋‹น ๊ธฐ์—…์„ ๊ณ ๋ฅด๊ฒŒ ํ•˜๋Š” ์ˆ˜๋ฐ–์— ์—†์„ ๊ฒƒ ๊ฐ™์Œ. (์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์•„์ง€๋ฉด ์ด์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋˜๋Š” ๊ธฐ์—…์˜ ๊ฐœ์ˆ˜๋„ ๋Š˜์–ด๋‚˜๊ฒ ์ง€....!!)
  3. ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ ์ˆ˜์šฉ
    • ์ด๊ฑด ์šฐ๋ฆฌ ๊ต์ˆ˜๋‹˜๊ป˜์„œ ์ฃผ์‹  ํ”ผ๋“œ๋ฐฑ์ธ๋ฐ, ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ๋ฌผ์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฐ›์•„์„œ ๋ณ€ํ™”์‹œํ‚ค๋Š” ๊ฒƒ๋„ ๊ดœ์ฐฎ์€ ์š”์†Œ์ผ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ํ•˜์…จ๋‹ค. ์•„๋งˆ ๊ทธ๋Ÿผ ui๋Š” ์ด๋Ÿฐ ๋А๋‚Œ์ผ ๊ฒƒ์ด๋‹ค.

์ € ๋ฐ•์Šค์— ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋„ฃ์–ด ๋‹ค์‹œ ์ƒ์„ฑ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๊ทธ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฐ›์•„ ์ƒ์„ฑํ•ด์ฃผ๋Š” ํ˜•์‹์ด๋‹ค. ๊ดœ์ฐฎ์€ ๊ธฐ๋Šฅ์ด ๋  ๊ฒƒ ๊ฐ™๋‹ค


์ด๋ ‡๊ฒŒ ๋ฐ๋ชจ ์„œ๋น„์Šค๋ฅผ ์™„์„ฑ์‹œ์ผฐ๋‹ค !!!!

๋ง‰์ƒ ์ฝ”๋“œ๋ฅผ ์งœ๋‹ค ๋ณด๋‹ˆ, ์€๊ทผ ๋‹จ์ˆœํ•œ ์ž‘์—…๋“ค์ด์—ˆ๊ณ , ๋ญ”๊ฐ€ ์ข€ ๋” ๋นจ๋ฆฌ ์˜์ง€๋ฅผ ๊ฐ€์ง€๊ณ  ํ–ˆ์œผ๋ฉด ๋นจ๋ฆฌ ๋๋‚ผ ์ˆ˜ ์žˆ์—ˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

ํ•˜์ง€๋งŒ ๊ฒฐ๊ณผ๋ฌผ์ด ๋‚˜์™”์œผ๋‹ˆ ํ›„ํšŒ๋Š” ์—†๋‹ค! ใ…‹ใ…‹ใ…‹

 

์•ž์œผ๋กœ๋Š” ์ด ๋ฐ๋ชจ ์„œ๋น„์Šค๋กœ ์‚ฌ์šฉ์ž ํ…Œ์ŠคํŒ…์„ ์ข€ ํ•ด๋ณด๊ณ , ์ธํ„ฐ๋ทฐ & ํ”ผ๋“œ๋ฐฑ์„ ํ†ตํ•ด ์šฐ๋ฆฌ ์„œ๋น„์Šค๊ฐ€ ์–ด๋–ค ์ ์ด ์ข‹๊ณ  ์–ด๋–ค ์ ์ด ๋ถ€์กฑํ•œ ์ง€ ๋“ฑ์— ๋Œ€ํ•ด ๋งŽ์ด ๋“ค์–ด๋ณด๊ณ  ์‹ถ๋‹ค.

 

ํ˜น์‹œ ์ด ๊ธ€์„ ๋ณด๊ณ  ๋ฐ๋ชจ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ณ , ๋Œ“๊ธ€๋กœ ํ”ผ๋“œ๋ฐฑ ๋‚จ๊ฒจ์ฃผ์…”๋„ ๋„ˆ๋ฌด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค !!

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ’ป ํ”„๋กœ์ ํŠธ > ๐ŸŽ“ RESUMAI' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[RESUMAI] 6. ์„œ๋น„์Šค ๊ฐœ๋ฐœ ์‹œ์ž‘ - DRF ์นด์นด์˜ค ์†Œ์…œ๋กœ๊ทธ์ธ, ์ด๊ฒƒ๋งŒ ๋ณด๋ฉด ํ•œ๋ฒˆ์— ๋!!  (0) 2024.05.25
[RESUMAI] 4. ๋ฐ์ดํ„ฐ ํฌ๋กค๋ง๊ณผ vectorDB ์ €์žฅ  (1) 2024.01.02
[RESUMAI] 3. RAG์˜ ๋„์ž…๊ณผ ์ž๊ธฐ์†Œ๊ฐœ์„œ ํฌ๋กค๋ง  (1) 2023.12.21
[RESUMAI] 2. ํ”„๋กฌํ”„ํŠธ ์‹คํ—˜  (2) 2023.11.12
[RESUMAI] 1. ์ฐ๋กœ ๋งŒ๋“œ๋Š” ์ž์†Œ์„œ์˜ ์‹œ์ž‘ / ๊ธฐํš  (0) 2023.11.03
  1. 1. RAG ๊ณผ์ • ๊ตฌํ˜„
  2. 1. Retrieve
  3. 2. Augment: ํ”„๋กฌํ”„ํŒ…
  4. 3. Generate
  5. 2. ๊ฒฐ๊ณผ
  6. 3. ๊ฐœ์„ ์  ๋ฐ ์ถ”๊ฐ€๊ธฐ๋Šฅ
  7. ๊ฐœ์„ ์ 
  8. ์ถ”๊ฐ€ ๊ธฐ๋Šฅ
'๐Ÿ’ป ํ”„๋กœ์ ํŠธ/๐ŸŽ“ RESUMAI' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [RESUMAI] 6. ์„œ๋น„์Šค ๊ฐœ๋ฐœ ์‹œ์ž‘ - DRF ์นด์นด์˜ค ์†Œ์…œ๋กœ๊ทธ์ธ, ์ด๊ฒƒ๋งŒ ๋ณด๋ฉด ํ•œ๋ฒˆ์— ๋!!
  • [RESUMAI] 4. ๋ฐ์ดํ„ฐ ํฌ๋กค๋ง๊ณผ vectorDB ์ €์žฅ
  • [RESUMAI] 3. RAG์˜ ๋„์ž…๊ณผ ์ž๊ธฐ์†Œ๊ฐœ์„œ ํฌ๋กค๋ง
  • [RESUMAI] 2. ํ”„๋กฌํ”„ํŠธ ์‹คํ—˜
์žฅ์˜์ค€
์žฅ์˜์ค€
groomielife
์žฅ์˜์ค€
youngjangjoon
์žฅ์˜์ค€
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (35)
    • ๐Ÿ“š ๋…ผ๋ฌธ (10)
    • ๐Ÿ’ป ํ”„๋กœ์ ํŠธ (14)
      • ๐ŸŽ“ RESUMAI (6)
      • ๐Ÿงธ TOY-PROJECTS (8)
    • ๐Ÿ“š ์Šคํ„ฐ๋”” (11)
      • CS224N (6)
      • NLP (5)

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • Conversational Agent
  • contrastive learning
  • rag
  • NLP
  • ์ƒ์„ฑAI
  • Representation Training
  • text embedding
  • project
  • story discovery
  • CS224N
  • RESUMAI
  • ArcFace
  • Neural Net
  • text clustering
  • DEEPALIGNED
  • MTP-CL
  • Haar-cascade
  • ์ž์†Œ์„œ์ƒ์„ฑํ”„๋กœ์ ํŠธ
  • allauth
  • gpt-1
  • NeuralNet
  • vectordb
  • GenAI
  • dj-rest-auth
  • pinecone
  • cv
  • ์ž๊ธฐ์†Œ๊ฐœ์„œ์ƒ์„ฑ
  • ๋…ผ๋ฌธ
  • DEEPLOOK
  • ๋น„๋™๊ธฐ ์ €์žฅ
hELLO ยท Designed By ์ •์ƒ์šฐ.
์žฅ์˜์ค€
[RESUMAI] 5. ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ƒ์„ฑ ๋ฐ๋ชจ ์„œ๋น„์Šค
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.