Skip to content

[๐Ÿ†2025 ๋น…์ฝ˜ํ…Œ์ŠคํŠธ] ์žฅ์‚ฌ์นœ๊ตฌ : STPโ€“4P ๋งˆ์ผ€ํŒ… ์ „๋žต Agent ๊ธฐํš ์—์ด์ „ํŠธ

Notifications You must be signed in to change notification settings

shashamalone/2025_shcard_bigcontest

Repository files navigation

๐Ÿค–[์žฅ์‚ฌ์นœ๊ตฌ ๋งˆ์ผ€ํŒ… ์—์ด์ „ํŠธ] Marketing MultiAgent System

Google Gemini์™€ LangGraph๋ฅผ ํ™œ์šฉํ•œ ์ž์œจ ๋งˆ์ผ€ํŒ… ์ „๋žต ์ˆ˜๋ฆฝ ๋ฐ ์ฝ˜ํ…์ธ  ์ƒ์„ฑ ์‹œ์Šคํ…œ


๐Ÿ“Œ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”


๐ŸŽฏ ํ”„๋กœ์ ํŠธ ๋ฐฐ๊ฒฝ ๋ฐ ๋ชฉํ‘œ

[์ด AI ์—์ด์ „ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ๋‚˜ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.] ์†Œ์ƒ๊ณต์ธ์€ ๋งˆ์ผ€ํŒ… ์ „๋žต ์ˆ˜๋ฆฝ์— ์–ด๋ ค์›€์„ ๊ฒช์Šต๋‹ˆ๋‹ค. ์ €ํฌ๋Š”... [AI๋ฅผ ํ†ตํ•ด ๋‹ฌ์„ฑํ•˜๊ณ ์ž ํ•˜๋Š” ๊ตฌ์ฒด์ ์ธ ๋ชฉํ‘œ๋ฅผ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค.]

  1. ์‹œ์žฅ ๋ถ„์„ ์ž๋™ํ™”, 2. ์ƒํ™ฉ๋ณ„ ๋งž์ถค ์ „์ˆ  ์ฆ‰๊ฐ ์ œ์•ˆ, 3. ์ฑ„๋„๋ณ„ ์ฝ˜ํ…์ธ  ์ดˆ์•ˆ ์ƒ์„ฑ

๐Ÿ—๏ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ (System Architecture)

๋ณธ ์‹œ์Šคํ…œ์€ 3๊ฐ€์ง€ ์ž‘์—… ์œ ํ˜•์„ ์ง€์›ํ•˜๋ฉฐ, Top-Level Supervisor ์—์ด์ „ํŠธ๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ถ„์„ํ•˜์—ฌ ์ตœ์ ์˜ ์›Œํฌํ”Œ๋กœ์šฐ๋กœ ์ž‘์—…์„ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.

1. ์ „์ฒด ์›Œํฌํ”Œ๋กœ์šฐ (High-Level Workflow)

Agent_์ตœ์ข…

2. ์—์ด์ „ํŠธ ๋ฐ ์—ญํ•  (Agents & Roles)

์ตœ์ƒ์œ„ Supervisor

  • Top-Level Supervisor: [์‚ฌ์šฉ์ž์˜ '์ž‘์—… ์œ ํ˜•'์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ํŒ€์œผ๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ]

์‚ฌ์šฉ์ž ์ž…๋ ฅ
โ”‚
โ”œโ”€ ๊ฐ€๋งน์  ์„ ํƒ
โ”œโ”€ ์ž‘์—… ์œ ํ˜• ์„ ํƒ (์ข…ํ•ฉ/์ƒํ™ฉ/์ฝ˜ํ…์ธ )
โ””โ”€ ์ถ”๊ฐ€ ์ •๋ณด (์ƒํ™ฉ/์ฑ„๋„)
โ”‚
โ–ผ
Top-Level Supervisor (๋ผ์šฐํŒ…)
โ”‚
โ”œโ”€ [์ข…ํ•ฉ] โ†’ Analysis Team โ†’ Strategy Team โ†’ ๋ณด๊ณ ์„œ
โ”œโ”€ [์ƒํ™ฉ] โ†’ Analysis Team โ†’ Situation Agent โ†’ Strategy Team โ†’ ์ „์ˆ 
โ””โ”€ [์ฝ˜ํ…์ธ ] โ†’ Analysis Team โ†’ Strategy Team โ†’ Content Agent โ†’ ๊ฐ€์ด๋“œ

๋ถ„์„ํŒ€(Analysis Team)

  • Analysis Team: [์ข…ํ•ฉ ์ „๋žต ์ˆ˜๋ฆฝ : ์‹œ์žฅ๊ณผ ํ™˜๊ฒฝ์„ ๋ถ„์„]
  • STP ๋ถ„์„ (PCA ๋ถ„์„ + KNN ๊ตฐ์ง‘)
    • Segmentation: ์‹œ์žฅ ๊ตฐ์ง‘(Cluster)๋ณ„ ํŠน์ง• ์ •์˜ + ๊ฐ€์ค‘์น˜ ๊ธฐ๋ฐ˜ ์ถ• ํ•ด์„
    • Targeting: ํƒ€๊ฒŸ ๊ตฐ์ง‘(Cluster) ์„ ์ • ๋ฐ ๊ฐ€๋งน์ ์˜ ํ˜„์žฌ ํฌ์ง€์…˜{PC1, PC2} ์ขŒํ‘œ
    • Positioning: ๋งคํŠธ๋ฆญ์Šค ์ƒ ๋นˆ ํฌ์ง€์…˜(White Space)์ขŒํ‘œ ๋ฐ ์ธ๊ทผ ๊ฒฝ์Ÿ์‚ฌ ๊ตฐ์ง‘ ์ •๋ณด => ์ตœ์ข… ํƒ€๊ฒŸ ํฌ์ง€์…˜ ์ œ์•ˆ
graph LR
    A[Supervisor] --> B[๐Ÿ“Š Analysis Team]

    %% Analysis Team ๋‚ด๋ถ€ STP ํ”Œ๋กœ์šฐ
    subgraph STP ๋ถ„์„ ํ”„๋กœ์„ธ์Šค
        direction LR
        S[Segmentation<br/>PCA + KNN ๊ตฐ์ง‘] --> T[Targeting<br/>ํƒ€๊ฒŸ ์„ ์ • ๋ฐ ํ˜„ ํฌ์ง€์…˜ ํŒŒ์•…]
        T --> P[Positioning<br/>White Space ํƒ์ง€ ๋ฐ ๊ฒฝ์Ÿ์‚ฌ ๋ถ„์„]
        P --> F[โœ… ์ตœ์ข… ํƒ€๊ฒŸ ํฌ์ง€์…˜ ์ œ์•ˆ : ๐Ÿ“„ STP ์ง„๋‹จ ๋ฆฌํฌํŠธ]
    end

    %% ๋ถ„์„ํŒ€์—์„œ STP ํ”„๋กœ์„ธ์Šค ์ง„์ž…
    B --> S
    %% ๋ฆฌํฌํŠธ๊ฐ€ Strategy Team์œผ๋กœ ์ „๋‹ฌ
    F --> G[ Strategy Team]



    %% ์Šคํƒ€์ผ ์ •์˜
    classDef main    fill:#1f2937,stroke:#9ca3af,stroke-width:1px,color:#f9fafb;
    classDef team    fill:#0f766e,stroke:#e5e7eb,stroke-width:1px,color:#ecfeff;
    classDef step    fill:#0369a1,stroke:#e5e7eb,stroke-width:0.8px,color:#f9fafb;
    classDef output  fill:#15803d,stroke:#e5e7eb,stroke-width:0.8px,color:#f9fafb;

    class A,G main;
    class B team;
    class S,T,P step;
    class F output;
Loading

์ „๋žตํŒ€(Analysis Team)

  • Strategy Team: [๋ถ„์„๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹ค์ œ 4P ์ „๋žต ๋ฐ ์ „์ˆ  ์นด๋“œ ์ƒ์„ฑ]
graph LR
    A[Supervisor] --> B[Analysis Team]
    B --> C[Strategy Team]

    %% Strategy Team ๋‚ด๋ถ€ ์ „๋žต ์„ค๊ณ„ ํ”Œ๋กœ์šฐ
    subgraph Strategy_Flow
        direction LR
        SA[๐Ÿงญ Strategy Agent<br/>STP ๊ธฐ๋ฐ˜ ์ „๋žต ์„ค๊ณ„] --> V[๐Ÿน Targeting ๊ฒ€์ฆ<br/>ํ•ต์‹ฌ ๋‹ˆ์ฆˆยท๊ณ ๊ฐ ๊ตฌ์กฐ ์ ๊ฒ€]
        V --> POS[โ™Ÿ๏ธ Positioning ์ •์˜<br/>๋นˆ ํฌ์ง€์…˜ : PC1ยทPC2 ๋ถ„์„ยท์ปจ์…‰ ํ™•์ •]
        POS --> STP4P[๐Ÿ—‚๏ธ STP ๋ฆฌํฌํŠธ โ†’ 4P ์ „๋žตํ™”]

        STP4P --> P1[Product<br/>ํฌ์ง€์…˜ ๋งž์ถค ์‹œ๊ทธ๋‹ˆ์ฒ˜ ๋ฉ”๋‰ด ์ œ์•ˆ<br/>์›น๊ฒ€์ƒ‰ ๊ธฐ๋ฐ˜]
        STP4P --> P2[Price<br/>ํฌ์ง€์…˜ ์ˆ˜์ค€์— ๋งž๋Š” ๊ฐ€๊ฒฉ ์ฑ…์ •]
        STP4P --> P3[Place<br/>DLV_SAA_RAT ๊ธฐ๋ฐ˜ ์œ ํ†ตยท๋ฐฐ๋‹ฌ ์ „๋žต]
        STP4P --> P4[Promotion<br/>์žฌ๋ฐฉ๋ฌธ์œจยท์—ฐ๋ น๋Œ€ ๊ธฐ์ค€ ์ฝ˜ํ…์ธ  ๊ฐ€์ด๋“œ]
    end

    %% Strategy Team ์ง„์ž…
    C --> SA

    %% 4P ์ „๋žต์ด ์ตœ์ข… ๋ฆฌํฌํŠธ๋กœ ์ˆ˜๋ ด
    P1 --> D[๐Ÿ“‘ Final Report]
    P2 --> D
    P3 --> D
    P4 --> D

    %% ์Šคํƒ€์ผ ์ •์˜ (์˜ต์…˜)
    classDef main   fill:#1f2937,stroke:#9ca3af,stroke-width:1px,color:#f9fafb;
    classDef team   fill:#0f766e,stroke:#e5e7eb,stroke-width:1px,color:#ecfeff;
    classDef agent  fill:#312e81,stroke:#e5e7eb,stroke-width:0.8px,color:#e0e7ff;
    classDef step   fill:#0369a1,stroke:#e5e7eb,stroke-width:0.8px,color:#f9fafb;
    classDef fourp  fill:#92400e,stroke:#e5e7eb,stroke-width:0.8px,color:#fffbeb;
    classDef output fill:#15803d,stroke-width:0.8px,stroke:#e5e7eb,color:#f9fafb;

    class A,B,C main;
    class SA agent;
    class V,POS,STP4P step;
    class P1,P2,P3,P4 fourp;
    class D output;

Loading
  • Situation Agent: [์ƒํ™ฉ ์ „์ˆ  ์ œ์•ˆ : Tavily, Weather API ๋“ฑ Tool์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฒคํŠธ/๋‚ ์”จ ๋“ฑ ํŠน์ • ์ƒํ™ฉ์— ์ง‘์ค‘ํ•˜์—ฌ ๊ธฐํšŒ ์š”์†Œ๋ฅผ ๋„์ถœ]
graph LR
    A[Supervisor] --> B[Analysis Team]
    B --> C[Strategy Team]

    C --> SA[๐Ÿงญ Strategy Agent<br/>STP ๊ธฐ๋ฐ˜ 4P ์ „๋žต ์„ค๊ณ„]
    SA --> STP4P[๐Ÿ—‚๏ธ 4P ์ „๋žต ์นด๋“œ<br/>ProductยทPriceยทPlaceยทPromotion]

    %% ์‚ฌ์šฉ์ž ์š”์ฒญ: ์ƒํ™ฉ ์ „์ˆ  ์ œ์•ˆ
    STP4P --> SIT[๐ŸŒฆ๏ธ Situation Agent<br/>์ƒํ™ฉ ์ „์ˆ  ์ œ์•ˆ ์š”์ฒญ ์‹œ ์ž‘๋™<br/>TavilyยทWeather API ๋“ฑ Tool ์‚ฌ์šฉ]

    SIT --> SP[๐Ÿ“˜ Situation Playbook<br/>์ด๋ฒคํŠธยท๋‚ ์”จ ๊ธฐ๋ฐ˜ ์ „์ˆ  ์นด๋“œ]
%% ์Šคํƒ€์ผ ์ •์˜
    classDef agent fill:#312e81,stroke:#e5e7eb,stroke-width:0.8px,color:#e0e7ff;
    classDef main  fill:#1f2937,stroke:#9ca3af,stroke-width:1px,color:#f9fafb;
    classDef node  fill:#0369a1,stroke:#e5e7eb,stroke-width:0.8px,color:#f9fafb;
    classDef output fill:#15803d,stroke-width:0.8px,stroke:#e5e7eb,color:#f9fafb;

    class A,B,C main;
    class SA,SIT agent;
    class STP4P node;
    class SP output;

Loading
  • Content Agent: [์ฝ˜ํ…์ธ  ์ƒ์„ฑ ๊ฐ€์ด๋“œ : ํ™•์ •๋œ ์ „๋žต์„ ๋ฐ”ํƒ•์œผ๋กœ SNS ์ฑ„๋„๋ณ„ ์ฝ˜ํ…์ธ  ๊ฐ€์ด๋“œ ๋ฐ ์นดํ”ผ ์ƒ์„ฑ]
graph LR
    A[Supervisor] --> B[Analysis Team]
    B --> C[Strategy Team]

    C --> SA[๐Ÿงญ Strategy Agent<br/>STP ๊ธฐ๋ฐ˜ 4P ์ „๋žต ์„ค๊ณ„]
    SA --> STP4P[๐Ÿ—‚๏ธ 4P ์ „๋žต ์นด๋“œ<br/>ProductยทPriceยทPlaceยทPromotion]

    %% ์‚ฌ์šฉ์ž ์š”์ฒญ: ์ฝ˜ํ…์ธ  ์ƒ์„ฑ ๊ฐ€์ด๋“œ
    STP4P --> CON[๐Ÿ“ฃ Content Agent<br/>์ฝ˜ํ…์ธ  ์ƒ์„ฑ ๊ฐ€์ด๋“œ ์š”์ฒญ ์‹œ ์ž‘๋™<br/>SNS ์ฑ„๋„๋ณ„ ์ „๋žต ๋ฐ˜์˜]

    CON --> CG[๐Ÿ“ Content Guide<br/>์ฑ„๋„๋ณ„ ์ฝ˜ํ…์ธ ยท์นดํ”ผ ๊ฐ€์ด๋“œ]

 %% ์Šคํƒ€์ผ ์ •์˜
    classDef agent fill:#312e81,stroke:#e5e7eb,stroke-width:0.8px,color:#e0e7ff;
    classDef main  fill:#1f2937,stroke:#9ca3af,stroke-width:1px,color:#f9fafb;
    classDef node  fill:#0369a1,stroke:#e5e7eb,stroke-width:0.8px,color:#f9fafb;
    classDef output fill:#15803d,stroke-width:0.8px,stroke:#e5e7eb,color:#f9fafb;

    class A,B,C main;
    class SA,CON agent;
    class STP4P node;
    class CG output;

Loading

โš™๏ธ ํ•ต์‹ฌ ๊ธฐ๋Šฅ ๋ฐ ๊ฒฐ๊ณผ๋ฌผ (Capabilities & Results)

1. ์ข…ํ•ฉ_์ „๋žต_์ˆ˜๋ฆฝ ๐Ÿ“Š

  • ๊ฐ€๋งน์ ์˜ ์‹œ์žฅ ํ™˜๊ฒฝ์„ ๋ถ„์„ํ•˜์—ฌ ์ค‘์žฅ๊ธฐ์ ์ธ ์ข…ํ•ฉ ๋งˆ์ผ€ํŒ… ์ „๋žต์„ ์ˆ˜๋ฆฝํ•ฉ๋‹ˆ๋‹ค.
  • Input: [ : ๊ฐ€๋งน์  ID, ์—…์ข…]
  • Process: [ : Analysis Team๊ณผ Strategy Team์ด ํ˜‘๋ ฅํ•˜์—ฌ STP ๋ถ„์„ ๋ฐ 4P ์ „๋žต ๋„์ถœ]
  • Output ( ์‹œ): [AI๊ฐ€ ์ƒ์„ฑํ•œ ์‹ค์ œ '์ข…ํ•ฉ ์ปจ์„คํŒ… ๋ณด๊ณ ์„œ' ์‹œ๋ฅผ ๋งˆํฌ๋‹ค์šด์ด๋‚˜ ์ด๋ฏธ์ง€๋กœ ์ฒจ๋ถ€]

[AI ์ƒ์„ฑ ๋ณด๊ณ ์„œ ์‹œ]

1. ์‹œ์žฅ ๋ถ„์„ (Market Analysis)

  • ์ฃผ์š” ํƒ€๊ฒŸ ๊ณ ๊ฐ: 20๋Œ€ ์—ฌ์„ฑ, ์ง์žฅ์ธ
  • ...

2. 4P ์ „๋žต (Strategy)

  • Product: ...
  • Price: ...

2. ์ƒํ™ฉ_์ „์ˆ _์ œ์•ˆ โšก

  • Input: [ : ๊ฐ€๋งน์  ID, ๊ธฐ๊ฐ„, ํŠน์ • ์ƒํ™ฉ( : ๋น„ ์˜ค๋Š” ๋‚ )]
  • Process: [ : Situation Agent๊ฐ€ ๋‚ ์”จ/์ด๋ฒคํŠธ ์ •๋ณด๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์ฆ‰๊ฐ์ ์ธ ์ „์ˆ  ์ œ์•ˆ]
  • Output ( ์‹œ): [AI๊ฐ€ ์ƒ์„ฑํ•œ '์ „์ˆ  ์นด๋“œ' ์‹œ]

[AI ์ƒ์„ฑ ์ „์ˆ  ์นด๋“œ ์‹œ]

  • ์ƒํ™ฉ: ์ฃผ๋ง ๋น„ ๋ณด (11/08 ~ 11/09)
  • ์ œ์•ˆ: "๋น„ ์˜ค๋Š” ๋‚ ์˜ ๋”ฐ๋œปํ•จ" ํ”„๋กœ๋ชจ์…˜
  • ์•ก์…˜: 1+1 ์Œ๋ฃŒ ์ฟ ํฐ ๋ฐœ์†ก, ๋งค์žฅ ๋‚ด ์žฌ์ฆˆ ์Œ์•… ํ”Œ๋ ˆ์ด
  • ์ฑ„๋„: ์ธ์Šคํƒ€๊ทธ๋žจ ์Šคํ† ๋ฆฌ, ๋‹น๊ทผ๋งˆ์ผ“

3. ์ฝ˜ํ…์ธ _์ƒ์„ฑ_๊ฐ€์ด๋“œ ๐Ÿ“ฑ

  • Input: [ : ๊ฐ€๋งน์  ID, ํƒ€๊ฒŸ ์ฑ„๋„( : ์ธ์Šคํƒ€๊ทธ๋žจ)]
  • Process: [ : Content Agent๊ฐ€ ์ „๋žต์„ ๋ฐ”ํƒ•์œผ๋กœ ์ฑ„๋„ ๋งž์ถคํ˜• ๊ฐ€์ด๋“œ๋ผ์ธ ์ž‘์„ฑ]
  • Output ( ์‹œ): [AI๊ฐ€ ์ƒ์„ฑํ•œ '์ฝ˜ํ…์ธ  ๊ฐ€์ด๋“œ' ์‹œ]

[AI ์ƒ์„ฑ ์ฝ˜ํ…์ธ  ๊ฐ€์ด๋“œ (์ธ์Šคํƒ€๊ทธ๋žจ)]

  • ์นดํ”ผ ์‹œ: "๋น„๊ฐ€ ๋‚ด๋ ค๋„ ๋‚ญ๋งŒ์€ ํฌ๊ธฐ ๋ชปํ•ด! โ˜” ํ…Œ์ผ๋Ÿฌ ์นดํŽ˜์—์„œ ๋”ฐ๋œปํ•œ ๋ผ๋–ผ ํ•œ ์ž” ์–ด๋•Œ์š”?"
  • ์ถ”์ฒœ ํ•ด์‹œํƒœ๊ทธ: #ํ…Œ์ŠคํŠธ์นดํŽ˜ #๋น„์˜ค๋Š”๋‚  #์นดํŽ˜์ถ”์ฒœ #๊ฐ์„ฑ
  • ์ด๋ฏธ์ง€ ๊ฐ€์ด๋“œ: ๋”ฐ๋œปํ•œ ์กฐ๋ช… ์•„๋ž˜ ๊น€์ด ๋‚˜๋Š” ์ปคํ”ผ์ž” ํด๋กœ์ฆˆ์—…

๐Ÿš€ ์‹คํ–‰ ๋ฐฉ๋ฒ• (Getting Started)

1. ํ™˜๊ฒฝ ์„ค์ • (Setup)

  1. Repository ํด๋ก 
    git clone [๋ ˆํฌ์ง€ํ† ๋ฆฌ URL]
    cd [ํ”„๋กœ์ ํŠธ ํด๋”]
  2. ํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ์„ค์น˜
    pip install -r requirements.txt
  3. .env ํŒŒ์ผ ์ƒ์„ฑ (API ํ‚ค ์„ค์ •)
    # .env ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์•„๋ž˜ ๋‚ด์šฉ์„ ์ฑ„์›Œ์ฃผ์„ธ์š”
    GOOGLE_API_KEY="์—ฌ๋Ÿฌ๋ถ„์˜ Gemini API ํ‚ค"
    TAVILY_API_KEY="์—ฌ๋Ÿฌ๋ถ„์˜ Tavily API ํ‚ค"

2. CLI ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰

from marketing_multiagent_system_final import run_marketing_strategy_system

# 1. ์ข…ํ•ฉ ์ „๋žต ์ˆ˜๋ฆฝ
result_1 = run_marketing_strategy_system(
    target_store_id="TEST001",
    target_store_name="ํ…Œ์ŠคํŠธ ์นดํŽ˜",
    task_type="์ข…ํ•ฉ_์ „๋žต_์ˆ˜๋ฆฝ"
)
print(result_1)

# 2. ์ƒํ™ฉ ์ „์ˆ  ์ œ์•ˆ
result_2 = run_marketing_strategy_system(
    # ... (์ดํ•˜ ์ƒ๋žต)
)
print(result_2)

3. Streamlit UI๋กœ ์‹คํ–‰ (์„ ํƒ ์‚ฌํ•ญ)

  1. Streamlit ์‹คํ–‰
    streamlit run '์žฅ์‚ฌ์นœ๊ตฌ ์„œ๋น„์Šค ์†Œ๊ฐœ.py'
  2. ๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:8501๋กœ ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.

</br>

๐Ÿ“‚ ํŒŒ์ผ ๊ตฌ์กฐ (File Structure)

/project/agent_all
โ”‚
โ”œโ”€โ”€ ์žฅ์‚ฌ์นœ๊ตฌ ์„œ๋น„์Šค ์†Œ๊ฐœ.py              # Streamlit UI (ํ†ตํ•ฉ)
โ”œโ”€โ”€ pages/
โ”‚   โ”œโ”€โ”€ 1_๐Ÿ“Š์‚ฌ์žฅ๋‹˜ ๋Œ€์‹œ๋ณด๋“œ.py           # ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋Œ€์‹œ๋ณด๋“œ
โ”‚   โ””โ”€โ”€ 2_๐Ÿชฝ๋งˆ์ผ€ํŒ… AI Agent.py          # ๋งˆ์ผ€ํŒ… ์ „๋žต ์ˆ˜๋ฆฝ ์—์ด์ „ํŠธ
โ”œโ”€โ”€ agents/
โ”‚   โ”œโ”€โ”€ marketing_multiagent_system_final.py  # ๋ฉ”์ธ ์‹œ์Šคํ…œ (ํ†ตํ•ฉ)
โ”‚   โ”œโ”€โ”€ situation_agent.py                # Situation Agent
โ”‚   โ””โ”€โ”€ content_agent.py                  # Content Agent
โ”œโ”€โ”€ tools/
โ”‚   โ”œโ”€โ”€ tavily_events.py                  # ์ด๋ฒคํŠธ ์ˆ˜์ง‘ Tool
โ”‚   โ””โ”€โ”€ weather_signals.py                # ๋‚ ์”จ ๋ถ„์„ Tool
โ”œโ”€โ”€ workflows/
โ”‚   โ””โ”€โ”€ integrated_workflow.py            # Langgraph ์›Œํฌํ”Œ๋กœ์šฐ
โ”œโ”€โ”€ requirements.txt
โ””โ”€โ”€ README.md

๐Ÿง‘โ€๐Ÿ’ป ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋ฐ ๊ธฐ์ˆ  ์Šคํƒ

AI / Core

[Gemini, LangGraph, Tavily API ๋“ฑ ์•„์ด์ฝ˜]

Frontend (UI)

[Streamlit ๋“ฑ ์•„์ด์ฝ˜]

Management Tool

[Git, Notion ๋“ฑ ์•„์ด์ฝ˜]



๐Ÿ“ˆ ์„ฑ๋Šฅ

์‘๋‹ต ์‹œ๊ฐ„

  • ์ข…ํ•ฉ ์ „๋žต: 20-30์ดˆ

    • Analysis Team: 10-15์ดˆ
    • Strategy Team: 10-15์ดˆ
  • ์ƒํ™ฉ ์ „์ˆ : 25-35์ดˆ

    • Analysis Team: 10-15์ดˆ
    • Situation Agent: 3-5์ดˆ (๋ณ‘๋ ฌ)
    • Strategy Team: 10-15์ดˆ
  • ์ฝ˜ํ…์ธ  ๊ฐ€์ด๋“œ: 30-40์ดˆ

    • Analysis Team: 10-15์ดˆ
    • Strategy Team: 10-15์ดˆ
    • Content Agent: 10-15์ดˆ

์ตœ์ ํ™”

  1. ์บ์‹ฑ: Streamlit @st.cache_data ํ™œ์šฉ
  2. ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ: Situation Agent์˜ ThreadPoolExecutor
  3. ๋ฐ์ดํ„ฐ ๊ฒฝ๋Ÿ‰ํ™”: ํ•„์ˆ˜ ์ปฌ๋Ÿผ๋งŒ ๋กœ๋“œ

๐Ÿ˜Ž ํŒ€์› ์†Œ๊ฐœ

[AI Engineer/๊ธฐํš] [AI Engineer] [Data Analyst] [๊ธฐํš/PM]
๊น€์ด์ • ๊น€์„œ์˜ ์ด์€๊ฒฝ ์•ˆ๋ก€์ง„

About

[๐Ÿ†2025 ๋น…์ฝ˜ํ…Œ์ŠคํŠธ] ์žฅ์‚ฌ์นœ๊ตฌ : STPโ€“4P ๋งˆ์ผ€ํŒ… ์ „๋žต Agent ๊ธฐํš ์—์ด์ „ํŠธ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •