Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Jihobp/MESChatBot

Repository files navigation

๐Ÿค– MES ์ฑ—๋ด‡ ์‹œ์Šคํ…œ

Semantic Kernel + Ollama ๊ธฐ๋ฐ˜์˜ ์™„์ „ ๋ฌด๋ฃŒ MES ์ „์šฉ ์ฑ—๋ด‡ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

๐Ÿ“‹ ๊ฐœ์š”

์ด ํ”„๋กœ์ ํŠธ๋Š” ์ œ์กฐ์‹คํ–‰์‹œ์Šคํ…œ(MES)์„ ์œ„ํ•œ AI ์ฑ—๋ด‡์œผ๋กœ, ์ž์—ฐ์–ด๋ฅผ ํ†ตํ•ด ์ƒ์‚ฐ์‹ค์ , ํ’ˆ์งˆ๊ด€๋ฆฌ, ์žฌ๊ณ ํ˜„ํ™ฉ ๋“ฑ์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐ŸŽฏ ์ฃผ์š” ํŠน์ง•

  • ์™„์ „ ๋ฌด๋ฃŒ: Ollama ๋กœ์ปฌ LLM ์‚ฌ์šฉ์œผ๋กœ API ๋น„์šฉ ์—†์Œ
  • ๋ฉ€ํ‹ฐํ…Œ๋„ŒํŠธ: ์—ฌ๋Ÿฌ ์—…์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ง€์›
  • ํ•œ๊ตญ์–ด ์ตœ์ ํ™”: ์ž์—ฐ์Šค๋Ÿฌ์šด ํ•œ๊ตญ์–ด ๋Œ€ํ™” ์ง€์›
  • ํ† ์Šค ์Šคํƒ€์ผ UI: ์ง๊ด€์ ์ด๊ณ  ํ˜„๋Œ€์ ์ธ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค
  • DevExpress ํ†ตํ•ฉ: ๊ธฐ์กด MES ์‹œ์Šคํ…œ๊ณผ ์™„๋ฒฝ ํ˜ธํ™˜

๐Ÿ—๏ธ ์•„ํ‚คํ…์ฒ˜

์†”๋ฃจ์…˜ ๊ตฌ์กฐ

MESChatBot/
โ”œโ”€โ”€ MESChatBot.Core/ # ํ•ต์‹ฌ AI ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง
โ”‚ โ”œโ”€โ”€ Services/ # ์ฑ—๋ด‡, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, Ollama ์„œ๋น„์Šค
โ”‚ โ”œโ”€โ”€ Functions/ # Semantic Kernel ํ•จ์ˆ˜๋“ค
โ”‚ โ”œโ”€โ”€ Models/ # ๋ฐ์ดํ„ฐ ๋ชจ๋ธ
โ”‚ โ””โ”€โ”€ Configuration/ # ์„ค์ • ํด๋ž˜์Šค
โ”œโ”€โ”€ MESChatBot.UI/ # DevExpress ๊ธฐ๋ฐ˜ UI ์ปดํฌ๋„ŒํŠธ
โ”‚ โ”œโ”€โ”€ Controls/ # ์ฑ—๋ด‡ ์ปจํŠธ๋กค
โ”‚ โ””โ”€โ”€ Forms/ # ์„ค์ • ๋ฐ ์ด๋ ฅ ํผ
โ””โ”€โ”€ MESChatBot.Demo/ # ๋…๋ฆฝ ์‹คํ–‰ ํ…Œ์ŠคํŠธ ์•ฑ
 โ””โ”€โ”€ Forms/ # ๋ฉ”์ธ ํผ

๊ธฐ์ˆ  ์Šคํƒ

  • .NET 8.0: ์ตœ์‹  .NET ํ”Œ๋žซํผ
  • Semantic Kernel: Microsoft AI ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ
  • Ollama: ๋กœ์ปฌ LLM ์„œ๋ฒ„
  • DevExpress WinForms: ํ”„๋กœํŽ˜์…”๋„ UI ์ปดํฌ๋„ŒํŠธ
  • SQL Server: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
  • Serilog: ๊ตฌ์กฐํ™”๋œ ๋กœ๊น…

๐Ÿš€ ์„ค์น˜ ๋ฐ ์„ค์ •

1. ์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ

Ollama ์„ค์น˜

# Windows์—์„œ Ollama ์„ค์น˜
# https://ollama.ai/download์—์„œ ๋‹ค์šด๋กœ๋“œ ํ›„ ์„ค์น˜
# ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ
ollama pull llama3.1:8b

.NET 8.0 SDK ์„ค์น˜

  • .NET 8.0 SDK ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜

2. ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ

# ์ €์žฅ์†Œ ํด๋ก 
git clone <repository-url>
cd MESChatBot
# ํŒจํ‚ค์ง€ ๋ณต์› ๋ฐ ๋นŒ๋“œ
dotnet restore
dotnet build

3. ์„ค์ • ํŒŒ์ผ ๊ตฌ์„ฑ

MESChatBot.Demo/appsettings.json ํŒŒ์ผ์„ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์ˆ˜์ •:

{
 "ChatbotConfig": {
 "OllamaEndpoint": "http://localhost:11434",
 "ModelName": "llama3.1:8b",
 "MaxTokens": 2048,
 "Temperature": 0.7,
 "TimeoutSeconds": 30
 },
 "DatabaseConfig": {
 "ServerUrl": "your-sql-server,port",
 "UserId": "your-username",
 "Password": "your-password",
 "Companies": [
 {
 "Name": "COMPANY_DB_NAME",
 "DisplayName": "ํšŒ์‚ฌ ํ‘œ์‹œ๋ช…",
 "IsActive": true
 }
 ]
 }
}

4. ์‹คํ–‰

# ๋ฐ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰
cd MESChatBot.Demo
dotnet run

๐Ÿ’ฌ ์‚ฌ์šฉ๋ฒ•

๊ธฐ๋ณธ ์งˆ๋ฌธ ์˜ˆ์‹œ

์‚ฌ์šฉ์ž: "์˜ค๋Š˜ ์ƒ์‚ฐ์‹ค์  ์•Œ๋ ค์ค˜"
์ฑ—๋ด‡: ๐Ÿ“Š 2024๋…„ 08์›” 22์ผ ์ƒ์‚ฐ์‹ค์ 
 ๐Ÿ”น ์ œํ’ˆA: 150๊ฐœ (์ž‘์—…์ง€์‹œ 3๊ฑด)
 ๐Ÿ”น ์ œํ’ˆB: 200๊ฐœ (์ž‘์—…์ง€์‹œ 2๊ฑด)
์‚ฌ์šฉ์ž: "ํ’ˆ์งˆ ํ˜„ํ™ฉ์€?"
์ฑ—๋ด‡: ๐Ÿ” 2024๋…„ 08์›” 22์ผ ํ’ˆ์งˆ ๊ฒ€์‚ฌ ๊ฒฐ๊ณผ
 โœ… ์ œํ’ˆA: ํ•ฉ๊ฒฉ๋ฅ  98.5%
 โš ๏ธ ์ œํ’ˆB: ํ•ฉ๊ฒฉ๋ฅ  95.2%
์‚ฌ์šฉ์ž: "์žฌ๊ณ  ๋ถ€์กฑํ•œ ์ œํ’ˆ ์žˆ์–ด?"
์ฑ—๋ด‡: ๐Ÿšจ ์žฌ๊ณ  ๋ถ€์กฑ ์ œํ’ˆ (2๊ฑด)
 ๐Ÿ”ฅ ์ œํ’ˆC: ํ˜„์žฌ๊ณ  0๊ฐœ / ์•ˆ์ „์žฌ๊ณ  50๊ฐœ
 โš ๏ธ ์ œํ’ˆD: ํ˜„์žฌ๊ณ  10๊ฐœ / ์•ˆ์ „์žฌ๊ณ  30๊ฐœ

์ง€์›๋˜๋Š” ๊ธฐ๋Šฅ

์ƒ์‚ฐ ๊ด€๋ฆฌ

  • ์ผ๋ณ„/๊ธฐ๊ฐ„๋ณ„ ์ƒ์‚ฐ์‹ค์  ์กฐํšŒ
  • ์ƒ์‚ฐ ๊ณ„ํš ๋Œ€๋น„ ์‹ค์  ๋ถ„์„
  • ์ง„ํ–‰ ์ค‘์ธ ์ž‘์—…์ง€์‹œ ํ˜„ํ™ฉ

ํ’ˆ์งˆ ๊ด€๋ฆฌ

  • ํ’ˆ์งˆ ๊ฒ€์‚ฌ ๊ฒฐ๊ณผ ์กฐํšŒ
  • ๋ถˆ๋Ÿ‰ ์œ ํ˜•๋ณ„ ๋ถ„์„
  • ํ’ˆ์งˆ ๋ชฉํ‘œ ๋Œ€๋น„ ์„ฑ๊ณผ

์žฌ๊ณ  ๊ด€๋ฆฌ

  • ์žฌ๊ณ  ํ˜„ํ™ฉ ์กฐํšŒ
  • ์žฌ๊ณ  ๋ถ€์กฑ ์ œํ’ˆ ์•Œ๋ฆผ
  • ์ž…์ถœ๊ณ  ๋‚ด์—ญ ์กฐํšŒ

๋ฉ€ํ‹ฐํ…Œ๋„ŒํŠธ

  • ์—…์ฒด๋ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ
  • ์‹ค์‹œ๊ฐ„ ์—…์ฒด ๋ณ€๊ฒฝ
  • ์—…์ฒด๋ณ„ ์„ค์ • ๊ด€๋ฆฌ

๐Ÿ”ง ์„ค์ • ๋ฐ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•

1. ์ƒˆ๋กœ์šด Function ์ถ”๊ฐ€

[KernelFunction, Description("์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์„ค๋ช…")]
public async Task<string> NewFunction(
 [Description("๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค๋ช…")] string parameter)
{
 // ๊ตฌํ˜„
 return result;
}

2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์ถ”๊ฐ€

appsettings.json์˜ Companies ๋ฐฐ์—ด์— ์ƒˆ ์—…์ฒด ์ถ”๊ฐ€:

{
 "Name": "NEW_COMPANY_DB",
 "DisplayName": "์ƒˆ ์—…์ฒด๋ช…",
 "IsActive": true
}

3. UI ์ปค์Šคํ„ฐ๋งˆ์ด์ง•

  • ChatbotControl.cs: ๋ฉ”์ธ ์ฑ„ํŒ… ์ธํ„ฐํŽ˜์ด์Šค
  • ApplyTossStyle() ๋ฉ”์„œ๋“œ์—์„œ ์Šคํƒ€์ผ ์ˆ˜์ •
  • ํ† ์Šค ์ปฌ๋Ÿฌ ํŒ”๋ ˆํŠธ ์‚ฌ์šฉ ๊ถŒ์žฅ

๐Ÿ“Š ๋กœ๊น… ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง

๋กœ๊ทธ ํŒŒ์ผ ์œ„์น˜

  • ์ฝ˜์†” ๋กœ๊ทธ: ์‹ค์‹œ๊ฐ„ ์ถœ๋ ฅ
  • ํŒŒ์ผ ๋กœ๊ทธ: logs/chatbot-yyyy-MM-dd.log
  • ๋ณด๊ด€ ์ •์ฑ…: 7์ผ๊ฐ„ ๋ณด๊ด€

๋กœ๊ทธ ๋ ˆ๋ฒจ

  • Information: ์ผ๋ฐ˜ ์ •๋ณด
  • Warning: ๊ฒฝ๊ณ  (์—ฐ๊ฒฐ ์‹คํŒจ ๋“ฑ)
  • Error: ์˜ค๋ฅ˜ (์ฟผ๋ฆฌ ์‹คํŒจ ๋“ฑ)
  • Fatal: ์น˜๋ช…์  ์˜ค๋ฅ˜

๐Ÿ”’ ๋ณด์•ˆ ๊ณ ๋ ค์‚ฌํ•ญ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณด์•ˆ

  • ์ฝ๊ธฐ ์ „์šฉ ์ฟผ๋ฆฌ๋งŒ ํ—ˆ์šฉ
  • ๋งค๊ฐœ๋ณ€์ˆ˜ํ™”๋œ ์ฟผ๋ฆฌ ์‚ฌ์šฉ
  • SQL Injection ๋ฐฉ์ง€

์—ฐ๊ฒฐ ๋ณด์•ˆ

  • ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„ ์—ฐ๊ฒฐ๋งŒ ํ—ˆ์šฉ
  • ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ ์‚ฌ์šฉ ๊ถŒ์žฅ
  • ์ ‘๊ทผ ๊ถŒํ•œ ์ตœ์†Œํ™”

๐Ÿšจ ๋ฌธ์ œ ํ•ด๊ฒฐ

์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ

1. Ollama ์—ฐ๊ฒฐ ์‹คํŒจ

# Ollama ์„œ๋น„์Šค ์ƒํƒœ ํ™•์ธ
curl http://localhost:11434/api/tags
# Ollama ์žฌ์‹œ์ž‘
ollama serve

2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์‹คํŒจ

  • ์„œ๋ฒ„ URL ๋ฐ ํฌํŠธ ํ™•์ธ
  • ์ธ์ฆ ์ •๋ณด ํ™•์ธ
  • ๋ฐฉํ™”๋ฒฝ ์„ค์ • ํ™•์ธ

3. DevExpress ๋ผ์ด์„ ์Šค ์˜ค๋ฅ˜

  • DevExpress ๋ผ์ด์„ ์Šค ์œ ํšจ์„ฑ ํ™•์ธ
  • DLL ๊ฒฝ๋กœ ํ™•์ธ
  • ๋ฒ„์ „ ํ˜ธํ™˜์„ฑ ํ™•์ธ

๋กœ๊ทธ ํ™•์ธ

# ์ตœ์‹  ๋กœ๊ทธ ํ™•์ธ
tail -f logs/chatbot-$(date +%Y-%m-%d).log
# ์˜ค๋ฅ˜ ๋กœ๊ทธ๋งŒ ํ•„ํ„ฐ๋ง
grep "ERROR\|FATAL" logs/chatbot-*.log

๐Ÿค ๊ธฐ์—ฌ ๊ฐ€์ด๋“œ

๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •

  1. Visual Studio 2022 ๋˜๋Š” VS Code ์„ค์น˜
  2. .NET 8.0 SDK ์„ค์น˜
  3. DevExpress ๋ผ์ด์„ ์Šค ์„ค์ •
  4. Ollama ์„ค์น˜ ๋ฐ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ

์ฝ”๋”ฉ ์Šคํƒ€์ผ

  • C# ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜ ์ค€์ˆ˜
  • XML ๋ฌธ์„œ ์ฃผ์„ ์ž‘์„ฑ
  • ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ ๊ถŒ์žฅ

๐Ÿ“ ๋ผ์ด์„ ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ ์Šค ํ•˜์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“ž ์ง€์›

๊ธฐ์ˆ  ์ง€์›์ด๋‚˜ ๋ฌธ์˜์‚ฌํ•ญ์ด ์žˆ์œผ์‹œ๋ฉด:

  • ์ด์Šˆ ํŠธ๋ž˜์ปค: GitHub Issues
  • ์ด๋ฉ”์ผ: support@snexis.com
  • ๋ฌธ์„œ: ์ด README ํŒŒ์ผ

Made with โค๏ธ by SNexis MES Team

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle ใซใ‚ˆใฃใฆๅค‰ๆ›ใ•ใ‚ŒใŸใƒšใƒผใ‚ธ (->ใ‚ชใƒชใ‚ธใƒŠใƒซ) /