File size: 15,969 Bytes
372531f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
<div align="center">
<!--<h1 style="display: flex; align-items: center; gap: 10px;">
  <img src="https://github.com/assafelovic/gpt-researcher/assets/13554167/a45bac7c-092c-42e5-8eb6-69acbf20dde5" alt="Logo" width="25">
  GPT Researcher
</h1>-->
<img src="https://github.com/assafelovic/gpt-researcher/assets/13554167/20af8286-b386-44a5-9a83-3be1365139c3" alt="Logo" width="80">


####

[![Website](https://img.shields.io/badge/Official%20Website-gptr.dev-teal?style=for-the-badge&logo=world&logoColor=white&color=0891b2)](https://gptr.dev)
[![Documentation](https://img.shields.io/badge/Documentation-DOCS-f472b6?logo=googledocs&logoColor=white&style=for-the-badge)](https://docs.gptr.dev)
[![Discord Follow](https://img.shields.io/discord/1127851779011391548?style=for-the-badge&logo=discord&label=Chat%20on%20Discord)](https://discord.gg/QgZXvJAccX)

[![PyPI version](https://img.shields.io/pypi/v/gpt-researcher?logo=pypi&logoColor=white&style=flat)](https://badge.fury.io/py/gpt-researcher)
![GitHub Release](https://img.shields.io/github/v/release/assafelovic/gpt-researcher?style=flat&logo=github)
[![Open In Colab](https://img.shields.io/static/v1?message=Open%20in%20Colab&logo=googlecolab&labelColor=grey&color=yellow&label=%20&style=flat&logoSize=40)](https://colab.research.google.com/github/assafelovic/gpt-researcher/blob/master/docs/docs/examples/pip-run.ipynb)
[![Docker Image Version](https://img.shields.io/docker/v/elestio/gpt-researcher/latest?arch=amd64&style=flat&logo=docker&logoColor=white&color=1D63ED)](https://hub.docker.com/r/gptresearcher/gpt-researcher)
[![Twitter Follow](https://img.shields.io/twitter/follow/assaf_elovic?style=social)](https://twitter.com/assaf_elovic)

[English](README.md) |
[ไธญๆ–‡](README-zh_CN.md) |
[ๆ—ฅๆœฌ่ชž](README-ja_JP.md) |
[ํ•œ๊ตญ์–ด](README-ko_KR.md)
</div>

# ๐Ÿ”Ž GPT Researcher

**GPT Researcher๋Š” ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ๋Œ€ํ•ด ํฌ๊ด„์ ์ธ ์˜จ๋ผ์ธ ์—ฐ๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์„ค๊ณ„๋œ ์ž์œจ ์—์ด์ „ํŠธ์ž…๋‹ˆ๋‹ค.**

์ด ์—์ด์ „ํŠธ๋Š” ์„ธ๋ถ€์ ์ด๊ณ  ์‚ฌ์‹ค์— ๊ธฐ๋ฐ˜ํ•˜๋ฉฐ ํŽธ๊ฒฌ ์—†๋Š” ์—ฐ๊ตฌ ๋ณด๊ณ ์„œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ด€๋ จ ๋ฆฌ์†Œ์Šค์™€ ๊ฐœ์š”์— ์ดˆ์ ์„ ๋งž์ถ˜ ๋งž์ถคํ˜• ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.  ์ตœ๊ทผ ๋ฐœํ‘œ๋œ [Plan-and-Solve](https://arxiv.org/abs/2305.04091) ๋ฐ [RAG](https://arxiv.org/abs/2005.11401) ๋…ผ๋ฌธ์—์„œ ์˜๊ฐ์„ ๋ฐ›์•„ GPT Researcher๋Š” ์ž˜๋ชป๋œ ์ •๋ณด, ์†๋„, ๊ฒฐ์ •๋ก ์  ์ ‘๊ทผ ๋ฐฉ์‹, ์‹ ๋ขฐ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ๋™๊ธฐํ™” ์ž‘์—…์ด ์•„๋‹Œ ๋ณ‘๋ ฌ ์—์ด์ „ํŠธ ์ž‘์—…์„ ํ†ตํ•ด ๋” ์•ˆ์ •์ ์ด๊ณ  ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

**์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ๋Š” AI์˜ ํž˜์„ ํ™œ์šฉํ•˜์—ฌ ๊ฐœ์ธ๊ณผ ์กฐ์ง์—๊ฒŒ ์ •ํ™•ํ•˜๊ณ  ํŽธํ–ฅ ์—†๋Š” ์‚ฌ์‹ค์— ๊ธฐ๋ฐ˜ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.**

## ์™œ GPT Researcher์ธ๊ฐ€?

- ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ฐ๊ตฌ ๊ณผ์ •์€ ๊ฐ๊ด€์ ์ธ ๊ฒฐ๋ก ์„ ๋„์ถœํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋ฉฐ, ์ ์ ˆํ•œ ๋ฆฌ์†Œ์Šค์™€ ์ •๋ณด๋ฅผ ์ฐพ๋Š” ๋ฐ ๋ช‡ ์ฃผ๊ฐ€ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
- ํ˜„์žฌ์˜ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM)์€ ๊ณผ๊ฑฐ ์ •๋ณด์— ๊ธฐ๋ฐ˜ํ•ด ํ›ˆ๋ จ๋˜์—ˆ์œผ๋ฉฐ, ํ™˜๊ฐ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์œ„ํ—˜์ด ๋†’์•„ ์—ฐ๊ตฌ ์ž‘์—…์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
- ํ˜„์žฌ LLM์€ ์งง์€ ํ† ํฐ ์ถœ๋ ฅ์œผ๋กœ ์ œํ•œ๋˜๋ฉฐ, 2,000๋‹จ์–ด ์ด์ƒ์˜ ๊ธธ๊ณ  ์ž์„ธํ•œ ์—ฐ๊ตฌ ๋ณด๊ณ ์„œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
- ์›น ๊ฒ€์ƒ‰์„ ์ง€์›ํ•˜๋Š” ์„œ๋น„์Šค(์˜ˆ: ChatGPT ๋˜๋Š” Perplexity)๋Š” ์ œํ•œ๋œ ๋ฆฌ์†Œ์Šค์™€ ์ฝ˜ํ…์ธ ๋งŒ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ํ”ผ์ƒ์ ์ด๊ณ  ํŽธํ–ฅ๋œ ๋‹ต๋ณ€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
- ์›น ์†Œ์Šค๋งŒ์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ฐ๊ตฌ ์ž‘์—…์—์„œ ์˜ฌ๋ฐ”๋ฅธ ๊ฒฐ๋ก ์„ ๋„์ถœํ•  ๋•Œ ํŽธํ–ฅ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

## ๋ฐ๋ชจ
https://github.com/user-attachments/assets/092e9e71-7e27-475d-8c4f-9dddd28934a3

## ์•„ํ‚คํ…์ฒ˜
์ฃผ์š” ์•„์ด๋””์–ด๋Š” "ํ”Œ๋ž˜๋„ˆ"์™€ "์‹คํ–‰" ์—์ด์ „ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ํ”Œ๋ž˜๋„ˆ๋Š” ์—ฐ๊ตฌํ•  ์งˆ๋ฌธ์„ ์ƒ์„ฑํ•˜๊ณ , ์‹คํ–‰ ์—์ด์ „ํŠธ๋Š” ์ƒ์„ฑ๋œ ๊ฐ ์—ฐ๊ตฌ ์งˆ๋ฌธ์— ๋”ฐ๋ผ ๊ฐ€์žฅ ๊ด€๋ จ์„ฑ ๋†’์€ ์ •๋ณด๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ํ”Œ๋ž˜๋„ˆ๋Š” ๋ชจ๋“  ๊ด€๋ จ ์ •๋ณด๋ฅผ ํ•„ํ„ฐ๋งํ•˜๊ณ  ์ง‘๊ณ„ํ•˜์—ฌ ์—ฐ๊ตฌ ๋ณด๊ณ ์„œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
<br /> <br /> 
์—์ด์ „ํŠธ๋Š” `gpt-4o-mini`์™€ `gpt-4o`(128K ์ปจํ…์ŠคํŠธ)๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์—ฐ๊ตฌ ์ž‘์—…์„ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”์— ๋”ฐ๋ผ ๊ฐ๊ฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„์šฉ์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. **ํ‰๊ท  ์—ฐ๊ตฌ ์ž‘์—…์€ ์•ฝ 2๋ถ„์ด ์†Œ์š”๋˜๋ฉฐ, ๋น„์šฉ์€ ์•ฝ $0.005์ž…๋‹ˆ๋‹ค.**.

<div align="center">
<img align="center" height="600" src="https://github.com/assafelovic/gpt-researcher/assets/13554167/4ac896fd-63ab-4b77-9688-ff62aafcc527">
</div>

๊ตฌ์ฒด์ ์œผ๋กœ:
* ์—ฐ๊ตฌ ์ฟผ๋ฆฌ ๋˜๋Š” ์ž‘์—…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋„๋ฉ”์ธ๋ณ„ ์—์ด์ „ํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
* ์ฃผ์–ด์ง„ ์ž‘์—…์— ๋Œ€ํ•ด ๊ฐ๊ด€์ ์ธ ์˜๊ฒฌ์„ ํ˜•์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ผ๋ จ์˜ ์—ฐ๊ตฌ ์งˆ๋ฌธ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
* ๊ฐ ์—ฐ๊ตฌ ์งˆ๋ฌธ์— ๋Œ€ํ•ด ํฌ๋กค๋Ÿฌ ์—์ด์ „ํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ์˜จ๋ผ์ธ ๋ฆฌ์†Œ์Šค์—์„œ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.
* ์ˆ˜์ง‘๋œ ๊ฐ ๋ฆฌ์†Œ์Šค์—์„œ ๊ด€๋ จ ์ •๋ณด๋ฅผ ์š”์•ฝํ•˜๊ณ  ์ถœ์ฒ˜๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
* ๋งˆ์ง€๋ง‰์œผ๋กœ, ์š”์•ฝ๋œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ํ•„ํ„ฐ๋งํ•˜๊ณ  ์ง‘๊ณ„ํ•˜์—ฌ ์ตœ์ข… ์—ฐ๊ตฌ ๋ณด๊ณ ์„œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

## ํŠœํ† ๋ฆฌ์–ผ
 - [๋™์ž‘์›๋ฆฌ](https://docs.gptr.dev/blog/building-gpt-researcher)
 - [์„ค์น˜๋ฐฉ๋ฒ•](https://www.loom.com/share/04ebffb6ed2a4520a27c3e3addcdde20?sid=da1848e8-b1f1-42d1-93c3-5b0b9c3b24ea)
 - [๋ผ์ด๋ธŒ ๋ฐ๋ชจ](https://www.loom.com/share/6a3385db4e8747a1913dd85a7834846f?sid=a740fd5b-2aa3-457e-8fb7-86976f59f9b8)


## ๊ธฐ๋Šฅ
- ๐Ÿ“ ๋กœ์ปฌ ๋ฌธ์„œ ๋ฐ ์›น ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ตฌ, ๊ฐœ์š”, ๋ฆฌ์†Œ์Šค ๋ฐ ํ•™์Šต ๋ณด๊ณ ์„œ ์ƒ์„ฑ
- ๐Ÿ“œ 2,000๋‹จ์–ด ์ด์ƒ์˜ ๊ธธ๊ณ  ์ƒ์„ธํ•œ ์—ฐ๊ตฌ ๋ณด๊ณ ์„œ ์ƒ์„ฑ ๊ฐ€๋Šฅ
- ๐ŸŒ ์—ฐ๊ตฌ๋‹น 20๊ฐœ ์ด์ƒ์˜ ์›น ์†Œ์Šค๋ฅผ ์ง‘๊ณ„ํ•˜์—ฌ ๊ฐ๊ด€์ ์ด๊ณ  ์‚ฌ์‹ค์— ๊ธฐ๋ฐ˜ํ•œ ๊ฒฐ๋ก  ๋„์ถœ
- ๐Ÿ–ฅ๏ธ ๊ฒฝ๋Ÿ‰ HTML/CSS/JS์™€ ํ”„๋กœ๋•์…˜์šฉ (NextJS + Tailwind) UX/UI ํฌํ•จ
- ๐Ÿ” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ง€์› ์›น ์†Œ์Šค ์Šคํฌ๋ž˜ํ•‘ ๊ธฐ๋Šฅ
- ๐Ÿ“‚ ์—ฐ๊ตฌ ๊ณผ์ •์—์„œ ๋งฅ๋ฝ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์ถ”์  ๋ฐ ์œ ์ง€
- ๐Ÿ“„ ์—ฐ๊ตฌ ๋ณด๊ณ ์„œ๋ฅผ PDF, Word ๋“ฑ์œผ๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ ์ง€์›

## ๐Ÿ“– ๋ฌธ์„œ

์ „์ฒด ๋ฌธ์„œ(์„ค์น˜, ํ™˜๊ฒฝ ์„ค์ •, ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ)๋ฅผ ๋ณด๋ ค๋ฉด [์—ฌ๊ธฐ](https://docs.gptr.dev/docs/gpt-researcher/getting-started/getting-started)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

- ์‹œ์ž‘ํ•˜๊ธฐ (์„ค์น˜, ํ™˜๊ฒฝ ์„ค์ •, ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ)
- ๋งž์ถค ์„ค์ • ๋ฐ ๊ตฌ์„ฑ
- ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ์˜ˆ์‹œ (๋ฐ๋ชจ, ํ†ตํ•ฉ, ๋„์ปค ์ง€์›)
- ์ฐธ๊ณ ์ž๋ฃŒ (์ „์ฒด API ๋ฌธ์„œ)

## โš™๏ธ ์‹œ์ž‘ํ•˜๊ธฐ
### ์„ค์น˜
> **1๋‹จ๊ณ„** - Python 3.11 ๋˜๋Š” ๊ทธ ์ด์ƒ์˜ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜์„ธ์š”. [์—ฌ๊ธฐ](https://www.tutorialsteacher.com/python/install-python)๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ๋‹จ๊ณ„๋ณ„ ๊ฐ€์ด๋“œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

> **2๋‹จ๊ณ„** - ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜์„ธ์š”.

```bash

git clone https://github.com/assafelovic/gpt-researcher.git

cd gpt-researcher

```

> **3๋‹จ๊ณ„** - ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ API ํ‚ค๋ฅผ ์„ค์ •ํ•˜์„ธ์š”: ์ง์ ‘ exportํ•˜๊ฑฐ๋‚˜ `.env` ํŒŒ์ผ์— ์ €์žฅํ•˜์„ธ์š”.

Linux/Windows์—์„œ ์ž„์‹œ ์„ค์ •์„ ํ•˜๋ ค๋ฉด export ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์„ธ์š”:

```bash

export OPENAI_API_KEY={OpenAI API ํ‚ค ์ž…๋ ฅ}

export TAVILY_API_KEY={Tavily API ํ‚ค ์ž…๋ ฅ}

```

๋” ์˜๊ตฌ์ ์ธ ์„ค์ •์„ ์›ํ•œ๋‹ค๋ฉด, ํ˜„์žฌ์˜ `gpt-researcher` ๋””๋ ‰ํ† ๋ฆฌ์— `.env` ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š” (export ์—†์ด).

- ๊ธฐ๋ณธ LLM์€ [GPT](https://platform.openai.com/docs/guides/gpt)์ด์ง€๋งŒ, `claude`, `ollama3`, `gemini`, `mistral` ๋“ฑ ๋‹ค๋ฅธ LLM๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. LLM ์ œ๊ณต์ž๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์€ [LLMs ๋ฌธ์„œ](https://docs.gptr.dev/docs/gpt-researcher/llms/llms)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์ด ํ”„๋กœ์ ํŠธ๋Š” OpenAI GPT ๋ชจ๋ธ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
- ๊ธฐ๋ณธ ๊ฒ€์ƒ‰๊ธฐ๋Š” [Tavily](https://app.tavily.com)์ด์ง€๋งŒ, `duckduckgo`, `google`, `bing`, `searchapi`, `serper`, `searx`, `arxiv`, `exa` ๋“ฑ์˜ ๊ฒ€์ƒ‰๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ์ œ๊ณต์ž๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์€ [๊ฒ€์ƒ‰๊ธฐ ๋ฌธ์„œ](https://docs.gptr.dev/docs/gpt-researcher/retrievers)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

### ๋น ๋ฅธ ์‹œ์ž‘

> **1๋‹จ๊ณ„** - ํ•„์š”ํ•œ ์ข…์†์„ฑ ์„ค์น˜

```bash

pip install -r requirements.txt

```

> **2๋‹จ๊ณ„** - FastAPI๋กœ ์—์ด์ „ํŠธ ์‹คํ–‰

```bash

python -m uvicorn main:app --reload

```

> **3๋‹จ๊ณ„** - ๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:8000 ์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์—ฐ๊ตฌ๋ฅผ ์‹œ์ž‘ํ•˜์„ธ์š”!

<br />

**[Poetry](https://docs.gptr.dev/docs/gpt-researcher/getting-started/getting-started#poetry) ๋˜๋Š” [๊ฐ€์ƒ ํ™˜๊ฒฝ](https://docs.gptr.dev/docs/gpt-researcher/getting-started/getting-started#virtual-environment)์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ณ  ์‹ถ๋‹ค๋ฉด, [๋ฌธ์„œ](https://docs.gptr.dev/docs/gpt-researcher/getting-started/getting-started)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.**

### PIP ํŒจํ‚ค์ง€๋กœ ์‹คํ–‰ํ•˜๊ธฐ
```bash

pip install gpt-researcher

```

```python

...

from gpt_researcher import GPTResearcher



query = "์™œ Nvidia ์ฃผ์‹์ด ์˜ค๋ฅด๊ณ  ์žˆ๋‚˜์š”?"

researcher = GPTResearcher(query=query, report_type="research_report")

# ์ฃผ์–ด์ง„ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ์—ฐ๊ตฌ ์ˆ˜ํ–‰

research_result = await researcher.conduct_research()

# ๋ณด๊ณ ์„œ ์ž‘์„ฑ

report = await researcher.write_report()

...

```

**๋” ๋งŽ์€ ์˜ˆ์ œ์™€ ๊ตฌ์„ฑ ์˜ต์…˜์€ [PIP ๋ฌธ์„œ](https://docs.gptr.dev/docs/gpt-researcher/gptr/pip-package)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.**

## Docker๋กœ ์‹คํ–‰

> **1๋‹จ๊ณ„** - [Docker ์„ค์น˜](https://docs.gptr.dev/docs/gpt-researcher/getting-started/getting-started-with-docker)

> **2๋‹จ๊ณ„** - `.env.example` ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๊ณ  API ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•œ ํ›„, ํŒŒ์ผ์„ `.env`๋กœ ์ €์žฅํ•˜์„ธ์š”.

> **3๋‹จ๊ณ„** - docker-compose ํŒŒ์ผ์—์„œ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ์„œ๋น„์Šค๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜์„ธ์š”.

```bash

$ docker-compose up --build

```

> **4๋‹จ๊ณ„** - docker-compose ํŒŒ์ผ์—์„œ ์•„๋ฌด ๊ฒƒ๋„ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด, ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‘ ๊ฐ€์ง€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค:
 - localhost:8000์—์„œ ์‹คํ–‰ ์ค‘์ธ Python ์„œ๋ฒ„<br>
 - localhost:3000์—์„œ ์‹คํ–‰ ์ค‘์ธ React ์•ฑ<br>

๋ธŒ๋ผ์šฐ์ €์—์„œ localhost:3000์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์—ฐ๊ตฌ๋ฅผ ์‹œ์ž‘ํ•˜์„ธ์š”!

## ๐Ÿ“„ ๋กœ์ปฌ ๋ฌธ์„œ๋กœ ์—ฐ๊ตฌํ•˜๊ธฐ

GPT Researcher๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ ๋ฌธ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฐ๊ตฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ง€์›๋˜๋Š” ํŒŒ์ผ ํ˜•์‹์€ PDF, ์ผ๋ฐ˜ ํ…์ŠคํŠธ, CSV, Excel, Markdown, PowerPoint, Word ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

1๋‹จ๊ณ„: `DOC_PATH` ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋ฌธ์„œ๊ฐ€ ์žˆ๋Š” ํด๋”๋ฅผ ์ง€์ •ํ•˜์„ธ์š”.

```bash

export DOC_PATH="./my-docs"

```

2๋‹จ๊ณ„:
 - ํ”„๋ก ํŠธ์—”๋“œ ์•ฑ์„ localhost:8000์—์„œ ์‹คํ–‰ ์ค‘์ด๋ผ๋ฉด, "Report Source" ๋“œ๋กญ๋‹ค์šด ์˜ต์…˜์—์„œ "My Documents"๋ฅผ ์„ ํƒํ•˜์„ธ์š”.
 - GPT Researcher๋ฅผ [PIP ํŒจํ‚ค์ง€](https://docs.tavily.com/docs/gpt-researcher/pip-package)๋กœ ์‹คํ–‰ ์ค‘์ด๋ผ๋ฉด, `report_source` ์ธ์ˆ˜๋ฅผ "local"๋กœ ์„ค์ •ํ•˜์—ฌ `GPTResearcher` ํด๋ž˜์Šค๋ฅผ ์ธ์Šคํ„ด์Šคํ™”ํ•˜์„ธ์š”. [์ฝ”๋“œ ์˜ˆ์ œ](https://docs.gptr.dev/docs/gpt-researcher/context/tailored-research)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

## ๐Ÿ‘ช ๋‹ค์ค‘ ์—์ด์ „ํŠธ ์–ด์‹œ์Šคํ„ดํŠธ

AI๊ฐ€ ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง ๋ฐ RAG์—์„œ ๋‹ค์ค‘ ์—์ด์ „ํŠธ ์‹œ์Šคํ…œ์œผ๋กœ ๋ฐœ์ „ํ•จ์— ๋”ฐ๋ผ, ์šฐ๋ฆฌ๋Š” [LangGraph](https://python.langchain.com/v0.1/docs/langgraph/)๋กœ ๊ตฌ์ถ•๋œ ์ƒˆ๋กœ์šด ๋‹ค์ค‘ ์—์ด์ „ํŠธ ์–ด์‹œ์Šคํ„ดํŠธ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

LangGraph๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ์˜ ์ „๋ฌธ ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•˜์—ฌ ์—ฐ๊ตฌ ๊ณผ์ •์˜ ๊นŠ์ด์™€ ์งˆ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ [STORM](https://arxiv.org/abs/2402.14207) ๋…ผ๋ฌธ์—์„œ ์˜๊ฐ์„ ๋ฐ›์•„, ์ด ํ”„๋กœ์ ํŠธ๋Š” AI ์—์ด์ „ํŠธ ํŒ€์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ์—ฐ๊ตฌ๋ฅผ ๊ณ„ํš์—์„œ ์ถœํŒ๊นŒ์ง€ ํ•จ๊ป˜ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

ํ‰๊ท  ์‹คํ–‰์€ 5-6 ํŽ˜์ด์ง€ ๋ถ„๋Ÿ‰์˜ ์—ฐ๊ตฌ ๋ณด๊ณ ์„œ๋ฅผ PDF, Docx, Markdown ํ˜•์‹์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

[์—ฌ๊ธฐ](https://github.com/assafelovic/gpt-researcher/tree/master/multi_agents)์—์„œ ํ™•์ธํ•˜๊ฑฐ๋‚˜ [๋ฌธ์„œ](https://docs.gptr.dev/docs/gpt-researcher/multi_agents/langgraph)์—์„œ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

## ๐Ÿ–ฅ๏ธ ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

GPT-Researcher๋Š” ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜๊ณ  ์—ฐ๊ตฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ํ–ฅ์ƒ๋œ ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

- ์—ฐ๊ตฌ ์ฟผ๋ฆฌ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ์ง๊ด€์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค
- ์—ฐ๊ตฌ ์ž‘์—…์˜ ์‹ค์‹œ๊ฐ„ ์ง„ํ–‰ ์ƒํ™ฉ ์ถ”์ 
- ์—ฐ๊ตฌ ๊ฒฐ๊ณผ์˜ ๋Œ€ํ™”ํ˜• ๋””์Šคํ”Œ๋ ˆ์ด
- ๋งž์ถคํ˜• ์—ฐ๊ตฌ ๊ฒฝํ—˜์„ ์œ„ํ•œ ์„ค์ • ๊ฐ€๋Šฅ

๋‘ ๊ฐ€์ง€ ๋ฐฐํฌ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค:
1. FastAPI๋กœ ์ œ๊ณต๋˜๋Š” ๊ฒฝ๋Ÿ‰ ์ •์  ํ”„๋ก ํŠธ์—”๋“œ
2. ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” NextJS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค์น˜ ๋ฐฉ๋ฒ• ๋ฐ ์ •๋ณด๋ฅผ ์›ํ•˜์‹œ๋ฉด [๋ฌธ์„œ ํŽ˜์ด์ง€](https://docs.gptr.dev/docs/gpt-researcher/frontend/frontend)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

## ๐Ÿš€ ๊ธฐ์—ฌํ•˜๊ธฐ
์šฐ๋ฆฌ๋Š” ๊ธฐ์—ฌ๋ฅผ ์ ๊ทน ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด [๊ธฐ์—ฌ ๊ฐ€์ด๋“œ](https://github.com/assafelovic/gpt-researcher/blob/master/CONTRIBUTING.md)๋ฅผ ํ™•์ธํ•ด ์ฃผ์„ธ์š”.

[๋กœ๋“œ๋งต](https://trello.com/b/3O7KBePw/gpt-researcher-roadmap) ํŽ˜์ด์ง€๋ฅผ ํ™•์ธํ•˜๊ณ , ์šฐ๋ฆฌ [Discord ์ปค๋ฎค๋‹ˆํ‹ฐ](https://discord.gg/QgZXvJAccX)์— ๊ฐ€์ž…ํ•˜์—ฌ ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ์— ํ•จ๊ป˜ ์ฐธ์—ฌํ•ด ์ฃผ์„ธ์š”.
<a href="https://github.com/assafelovic/gpt-researcher/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=assafelovic/gpt-researcher" />
</a>

## โœ‰๏ธ ์ง€์› / ๋ฌธ์˜
- [์ปค๋ฎค๋‹ˆํ‹ฐ Discord](https://discord.gg/spBgZmm3Xe)
- ์ €์ž ์ด๋ฉ”์ผ: [email protected]

## ๐Ÿ›ก๏ธ ๋ฉด์ฑ… ์กฐํ•ญ

์ด ํ”„๋กœ์ ํŠธ์ธ GPT Researcher๋Š” ์‹คํ—˜์ ์ธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด๋ฉฐ, ๋ช…์‹œ์ ์ด๊ฑฐ๋‚˜ ๋ฌต์‹œ์ ์ธ ๋ณด์ฆ ์—†์ด "์žˆ๋Š” ๊ทธ๋Œ€๋กœ" ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ์ฝ”๋“œ๋ฅผ ํ•™์ˆ ์  ๋ชฉ์ ์œผ๋กœ Apache 2 ๋ผ์ด์„ ์Šค ํ•˜์— ๊ณต์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์žˆ๋Š” ๊ฒƒ์€ ํ•™์ˆ ์  ์กฐ์–ธ์ด ์•„๋‹ˆ๋ฉฐ, ํ•™์ˆ  ๋˜๋Š” ์—ฐ๊ตฌ ๋…ผ๋ฌธ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํŽธํ–ฅ๋˜์ง€ ์•Š์€ ์—ฐ๊ตฌ ์ฃผ์žฅ์— ๋Œ€ํ•œ ์šฐ๋ฆฌ์˜ ๊ฒฌํ•ด:
1. GPT Researcher์˜ ์ฃผ์š” ๋ชฉํ‘œ๋Š” ์ž˜๋ชป๋œ ์ •๋ณด์™€ ํŽธํ–ฅ๋œ ์‚ฌ์‹ค์„ ์ค„์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ผ๊นŒ์š”? ์šฐ๋ฆฌ๋Š” ๋” ๋งŽ์€ ์‚ฌ์ดํŠธ๋ฅผ ์Šคํฌ๋ž˜ํ•‘ํ• ์ˆ˜๋ก ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์ค„์–ด๋“ ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์‚ฌ์ดํŠธ์—์„œ ์ •๋ณด๋ฅผ ์Šคํฌ๋ž˜ํ•‘ํ•˜๊ณ  ๊ฐ€์žฅ ๋นˆ๋ฒˆํ•œ ์ •๋ณด๋ฅผ ์„ ํƒํ•˜๋ฉด, ๋ชจ๋“  ์ •๋ณด๊ฐ€ ํ‹€๋ฆด ํ™•๋ฅ ์€ ๋งค์šฐ ๋‚ฎ์Šต๋‹ˆ๋‹ค.
2. ์šฐ๋ฆฌ๋Š” ํŽธํ–ฅ์„ ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ, ๊ฐ€๋Šฅํ•œ ํ•œ ์ค„์ด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. **์šฐ๋ฆฌ๋Š” ์ธ๊ฐ„๊ณผ LLM์˜ ๊ฐ€์žฅ ํšจ๊ณผ์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์„ ์ฐพ๊ธฐ ์œ„ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ์ž…๋‹ˆ๋‹ค.**
3. ์—ฐ๊ตฌ์—์„œ ์‚ฌ๋žŒ๋“ค๋„ ์ด๋ฏธ ์ž์‹ ์ด ์—ฐ๊ตฌํ•˜๋Š” ์ฃผ์ œ์— ๋Œ€ํ•ด ์˜๊ฒฌ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํŽธํ–ฅ๋˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” ๋งŽ์€ ์˜๊ฒฌ์„ ์Šคํฌ๋ž˜ํ•‘ํ•˜๋ฉฐ, ํŽธํ–ฅ๋œ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ๊ฒฐ์ฝ” ์ฝ์ง€ ์•Š์•˜์„ ๋‹ค์–‘ํ•œ ๊ฒฌํ•ด๋ฅผ ๊ณ ๋ฅด๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

**GPT-4 ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ํ† ํฐ ์‚ฌ์šฉ๋Ÿ‰ ๋•Œ๋ฌธ์— ๋น„์šฉ์ด ๋งŽ์ด ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.** ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ์ž์‹ ์˜ ํ† ํฐ ์‚ฌ์šฉ๋Ÿ‰ ๋ฐ ๊ด€๋ จ ๋น„์šฉ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ๋ณธ์ธ์˜ ์ฑ…์ž„์ž…๋‹ˆ๋‹ค. OpenAI API ์‚ฌ์šฉ๋Ÿ‰์„ ์ •๊ธฐ์ ์œผ๋กœ ํ™•์ธํ•˜๊ณ , ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋น„์šฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ•œ๋„๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ์•Œ๋ฆผ์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.


---

<p align="center">
<a href="https://star-history.com/#assafelovic/gpt-researcher">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=assafelovic/gpt-researcher&type=Date&theme=dark" />

    <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=assafelovic/gpt-researcher&type=Date" />

    <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=assafelovic/gpt-researcher&type=Date" />

  </picture>

</a>

</p>