ãã¹ãWindowsã®LM Studioã®APIã«WSL2ããæ¥ç¶ã§ããããã«ãã
ããã£ã¦ãã¾ãã°ãªãã®ãã¨ã¯ãªã話ãªã®ã§ãããã¡ãã£ã¨ããã£ãã®ã§ã¡ã¢ã
LM Studioã使ãã¨ãOpenAI APIäºæã®APIã§å種LLMã使ããã¨ãã§ããããã«ãªã£ã¦ä¾¿å©ã§ãã
ãªã®ã§ãããWSL2ãããã¹ãã®Windowsä¸ã§åãã¦ããLLMã®APIããªããªãå¼ã¹ãªãã¦ãããã¾ããã
LM Studioã®ãã¼ã¸ã§ã³ã¯0.3.11ã§ãã
ã¨ããããæé ã¨ãã¦ã¯
1. åããããLLMããã¼ããã¦ãã£ããã§åããã¨ã確èª
2. å·¦ä¸ã®ã¡ãã¥ã¼ããç·è²ã®ãDeveloperãã鏿
3. ãStatus: Runningãã®ã¨ããããªã³ã«ãã
ã ããªã®ã§ãããããã ã¨Windowsã®ç°å¢ããã¯APIãå©ãããã®ã®ãWSL2ç°å¢ããã¯è§¦ãã¾ããã
ããã¯ãWSL2ç°å¢ãããã¹ãã®Windowsã®ãµã¼ãã¹ãlocalhostã¨ãã¦ãã®ã¾ã¾å©ããã¨ãã§ããªããã¨ãããã¨ãçç±ã§ãã
ããã§ãã¹ãã®IPãipconfigã§èª¿ã¹ã¦å©ãã°è¯ãããã«æãã®ã§ãããããããã¾ãããã¾ããã
ã¨ããã®ã¯é常ã ã¨LM StudioãèªPCããã®ã¿ã®ã¢ã¯ã»ã¹ã許å¯ãã¦ãããããWSL2ããã®æ¥ç¶ã¯å¥ãããã¯ã¼ã¯ããã®æ¥ç¶ã¨èªèããã¦ãã¾ãã®ã§ãããã§æå¦ããã¦ãã¾ãããã§ãã
ãªã®ã§ãä¸è¨ã®ããã«è¿½å ã§ä»ã®ãããã¯ã¼ã¯ããã®ã¢ã¯ã»ã¹ã許å¯ããè¨å®ãå¿ è¦ã«ãªãã¾ãã
4. å
ç¨ã®ã¡ãã¥ã¼ã§ãSettingsããéã
5. ãServe on Local Networkãããªã³
ããã§ãã£ã¨WSL2ãããAPIãåãããããã«ãªãã¾ãã
ãã®ã¨ããAPIã«ã¢ã¯ã»ã¹ããããã®localhostã§ã¯ãªãIPã¨ã¨ã³ããã¤ã³ãã表示ããã¾ãã
ãã ããã ã¨ãã¼ã«ã«ãããã¯ã¼ã¯ããã®ã¢ã¯ã»ã¹å
¨é¨ã許å¯ããããããæ³¨æãå¿
è¦ã§ãã
ãªããªãçç±ãããããªãã¦å°ã£ã¦ããã§ãããGPT-4.5å çã
å¿ ãAPIãµã¼ãã 0.0.0.0 ã§Listenããå¿ è¦ãããã¾ãã
ã¨ã¢ããã¤ã¹ãã¦ãããã®ã§æ°ãã¤ãã¾ããã¨ãã
ãã¼ã«ã«ã®difyã«ç¬èªã®çµã¿è¾¼ã¿ãã¼ã«ã使ãã
ãã®è¨äºã¯Difyã¢ããã³ãã«ã¬ã³ãã¼2024ç¨ã«æ¸ããè¨äºã§ãã
ãã¼ã«ã«ã®difyã«ç¬èªã®çµã¿è¾¼ã¿ãã¼ã«ã使ãã
difyã«ã¯çµã¿è¾¼ã¿ãã¼ã«ã¨ããå種SaaSãªã©ãå¼ã³åºããããªãã¼ã«ãæºåããã¦ãã¾ãã
difyã¯å
ã
SaaSã§ã®ãµã¼ãã¹ãã¡ã¤ã³ã«ä½ããã¦ããï¼ã¨æãããï¼ãããä¾ãã°åºæ¬çã«ãã¡ã¤ã«ã¸ã®åºåããµãã¼ãããã¦ããªãã¨ããï¼ã¾ã ï¼åç»ãé³å£°ãæ±ããããªãã®ããã¾ããªãã£ãããã¾ãã
ããããã¼ã«ã«ã§åããã¦ã¦ããdifyã§ã¯ãçæãããããã¹ãããã¡ã¤ã«ã«æ¸ãåºãããã¨ããåç»ãffmpegçãªãã®ã§ç·¨éãããã¨ããçµæ§ããã¾ãã
ããã§ããã¡ã¤ã«ã¸ã®ããã¹ãæ¸ãè¾¼ã¿ã ããããé常ã«ç°¡åãªçµã¿è¾¼ã¿ãã¼ã«ãä½ããã¨ã顿ã«ããã¼ã«ã«ã®difyã«ç¬èªã®çµã¿è¾¼ã¿ãã¼ã«ã使ãã¦éç¨ããããã®æé ã説æãã¾ãã
å
¬å¼ã§ã¯ä¸è¨ãã¼ã¸ã«ãã«ãã¤ã³ãã¼ã«ã®ä½ãæ¹ã«ã¤ãã¦èª¬æãããã¾ãããã®è¨äºã¨åããã¦åç
§ãã¦ã¿ã¦ãã ããã
ã¯ã¤ãã¯çµ±åãã¼ã« | Dify https://docs.dify.ai/ja-jp/guides/tools/quick-tool-integration
çµã¿è¾¼ã¿ãã¼ã«ã®å ´æã¨æ§æ
çµã¿è¾¼ã¿ãã¼ã«ã®ããã¦ããå ´æã¯ãã½ã¼ã¹å ã®ä»¥ä¸ã®ãã£ã¬ã¯ããªã«ããã¾ãã
dify/api/core/tools/provider/builtin/
ãã®ä¸ã«ãçµç¹åï¼ãµã¼ãã¹åï¼ã§ãã£ã¬ã¯ããªãä½ãã¾ãã
ä»åã¯å ¬éãããã®ã§ã¯ãªãèªåç¨ã®ãã¼ã«ãä½ãã¨ããä½ã§ãmytoolsãã¨ãããã£ã¬ã¯ããªã«ãã¾ãããã¤ã¾ããã®å ´å
dify/api/core/tools/provider/builtin/mytools/
ã¨ãããã©ã«ãã«èªåã®ãã¼ã«ãä½ã£ã¦ãããã¨ã«ãªãã¾ãã
ãã®çµç¹åï¼ãµã¼ãã¹åï¼ã¯ããã£ã¬ã¯ããªåã¨åä¸ã«ãªãã®ã§ãå½ç¶ã¦ãã¼ã¯ã§ããå¿
è¦ãããã¾ãã
difyã¯é »ç¹ã«ã¢ãããã¼ãããã¦ããã¾ãããå¤ãã®å ´ågitã§pullãã¦ã¢ãããã¼ããã¦ããã¨æãã¾ãã
ãã®éã«gitã§ã®ã³ã³ããªã¯ããèµ·ããªãããã«ãçµã¿è¾¼ã¿ãã¼ã«ã®ãã©ã«ãã®ã¿ã追å ããã°åãããã«è¨è¨ããã¦ãã¾ãã
.gitignoreã®è¨å®
ããã§ãgitã§å¤æ´ãåºã¦ããã®ãæ°æã¡æªãã¨æãã®ã§ãbuiltinãã©ã«ãã®ä¸ã«gitignoreãè¨å®ãã¦ããã¾ãã
dify/api/core/tools/provider/builtin/.gitignore
.gitignore mytools
çµã¿è¾¼ã¿ãã¼ã«ã®ä¸èº«
ãã®ãã£ã¬ã¯ããªå ã«ã¯
- _assets/
- tools/
- mytools.yaml
- mytools.py
ãæºåãã¾ãã
ããã§ãã©ã«ãåã¨åãååã®ã¤ãã¦ãããmytools.yamlãããmytools.pyãã¯ãå
¨ä½ã«ã¤ãã¦ã®è¨å®ã¨åºæ¬ã®ã¯ã©ã¹è¨å®ã®ã¿ã§ãã
tools/ ãã£ã¬ã¯ããªå
ã«ãå
·ä½çã«æ©è½ãã¨ã®ã¹ã¯ãªããã¨ãã®è¨å®ã®YAMLãã¡ã¤ã«ãä½ã£ã¦ããã¾ãã
ãã®ã¨ãããã®ãã¼ã«ãã¨ã®ãã¡ã¤ã«åã¯ä»ã®ãã¼ã«ã®ãã¡ã¤ã«åã¨ãã¦ãã¼ã¯ã§ããå¿
è¦ããããããã«æãã¾ãããã¶ãâ¦
_assets/ ãã£ã¬ã¯ããªä»¥ä¸ã«ã¯ãã¢ã¤ã³ã³ãã¹ã¯ãªãããã使ããããã¡ã¤ã«ãç½®ããã¾ããã¢ã¤ã³ã³ãä¸è¦ãªãã°ãã®ãã£ã¬ã¯ããªèªä½ããªãã¦ã大ä¸å¤«ã§ãã
ãã¼ã«ã®ä½ææ¹æ³
å
·ä½çã«ãã¡ã¤ã«ã使ãã¦ããã¾ãã
æ°ããä½ãã¨ãã«ã¯ãé¢é£ããããªãã¼ã«ãã³ãã¼ãã¦ããã®ä¸èº«ã夿´ããã®ã楽ã ã¨æãã¾ãã
mytools.yaml
çµç¹åï¼ãµã¼ãã¹åï¼èªä½ã®è¨å®ãæ¸ãã¾ãã
ååã¨ä½è
ã®è¨å®ãã©ã®ç¨®å¥ã®ãã¼ã«ãã ãã§ãã
identity: author: stealthinu name: mytools label: en_US: My Tools description: en_US: My Tools icon: icon.svg tags: - utilities
mytools.py
ã»ã¼æ±ºãæã¡ã§ãclassåããã¡ã¤ã«åã¨åãååã§ã¤ãã¾ãã
ãªã®ã§ååã¯ä»ã¨è¢«ããªãããã«æ³¨æãã¾ãã
from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController class MyToolsProvider(BuiltinToolProviderController): def _validate_credentials(self, credentials: dict) -> None: pass
tools/file_writer.yaml
ãã¼ã«ã®ååãä½è
ã説æããã©ã¡ã¼ã¿ã®èª¬æãæ¸ãã¾ãã
ãã©ã¡ã¼ã¿ã®èª¬æã«ã¯ãã©ããªãã©ã¡ã¼ã¿ãå¿
è¦ã§ããããä½ãããã¼ã¿ã®åãå¿
é æ¡ä»¶ãªã©ãè¨è¿°ãã¾ãã
ãã ãããã«è¨å®ããå
容ã¯ãããã¾ã§èª¬æã®ããã®ãã®ã§ãããã°ã©ã çã«ã¯å¾è¿°ã®get_runtime_parametersã®ä¸ã§æå®ããããã«ãªã£ã¦ãã¾ãã
identity: name: file_writer author: stealthinu label: en_US: File Writer description: human: en_US: Write content to a file. llm: Write content to a file. parameters: - name: content type: string required: true label: en_US: Content ja_JP: å 容 human_description: en_US: The content to write to the file. ja_JP: ãã¡ã¤ã«ã«æ¸ãè¾¼ãå 容ã llm_description: The content to write to the file. form: llm
tools/file_writer.py
ããã«å®éã®å¦çãæ¸ãã¾ãã絶対ã«å¿ è¦ãªãã®ã¯ä»¥ä¸ã®2颿°ã§ãã
- get_runtime_parameters : åå¾ãããã©ã¡ã¼ã¿ã¨ãã®åã説æãè¨å®ãã¾ãã
- _invoke : ãã¼ãã§å¦çããå 容ãå®éã«ããããå¦çãæ¸ãã¾ãã
ãã©ã¡ã¼ã¿ã®æ¸¡ãæ¹ã ãæ³¨æããã°ãã¨ã¯æ®éã«pythonãæ¸ãã°ããã§ãã
ãã ãããã¡ã¤ã«ã®åºåã«ã¤ãã¦ã¯difyå´ã«ãã¼ã¿ã渡ãã¦å¦çãã¦ããããããªæ¸ãæ¹ãæ£ããããã§ããã®ããããæ³¨æãå¿
è¦ã§ãã
ããã§ã¯create_blob_messageã使ã£ã¦ãçµã¿è¾¼ã¿ãã¼ã«ç¨ã®ãã£ã¬ã¯ããªã«ããã¹ããã¡ã¤ã«ãåºåããããã«ãã¦ãã¾ãã
tools/file_writer.py
from typing import Any from core.tools.entities.common_entities import I18nObject from core.tools.entities.tool_entities import ToolInvokeMessage, ToolParameter from core.tools.tool.builtin_tool import BuiltinTool class FileWriterTool(BuiltinTool): def _invoke(self, user_id: str, tool_parameters: dict[str, Any]) -> list[ToolInvokeMessage]: content = tool_parameters.get("content") if not content: return [self.create_text_message("No content provided")] try: # ã³ã³ãã³ããUTF-8ã§ã¨ã³ã³ã¼ã binary_content = content.encode('utf-8') # Difyã·ã¹ãã ã«ãã¡ã¤ã«ãè¿ã return [ self.create_text_message("Successfully prepared content"), self.create_blob_message( blob=binary_content, meta={"mime_type": "text/plain"}, save_as=self.VariableKey.CUSTOM.value, ), ] except Exception as e: return [self.create_text_message(f"Failed to process file: {str(e)}")] def get_runtime_parameters(self) -> list[ToolParameter]: parameters = [] # ã³ã³ãã³ããã©ã¡ã¼ã¿ parameters.append( ToolParameter( name="content", label=I18nObject( en_US="Content", ja_JP="å 容" ), human_description=I18nObject( en_US="The content to write to the file.", ja_JP="ãã¡ã¤ã«ã«æ¸ãè¾¼ãå 容ã" ), type=ToolParameter.ToolParameterType.STRING, form=ToolParameter.ToolParameterForm.LLM, required=True ) ) return parameters
dockerã®éç¨æ¹æ³
difyã®éç¨ã¯dockerã§è¡ããã¦ãããã¨ãå¤ãã®ã§ã¯ãªããã¨æãã¾ãã
çµã¿è¾¼ã¿ãã¼ã«ãå
¥ã㦠docker compose up ãã¦ããçµã¿è¾¼ã¿ãã¼ã«ãå
¥ã£ãç¶æ³ã§ dify ãåããã¨ã¯ããã¾ããããã㯠docker-compose ã§åãã¦ãã dify-api ããdokcer hubããè½ã¨ãã¦ããdockerã¤ã¡ã¼ã¸ãå©ç¨ããããã§ãã
ããã§ããã¼ã«ã«ã§ dify-api ã®dockerã¤ã¡ã¼ã¸ã使ãã¦ãdocker-compose ã®ãªã¼ãã¼ã©ã¤ãè¨å®ã§ããã® docker-image ã使ãããã«è¨å®ãã¦ããã¾ãã
dify-apiã¯ä¸è¨ã®ããã«ãã¦ãã¼ã«ã«ã«ãdify-apiãã¨ããdockerã¤ã¡ã¼ã¸ã§ä½æãã¾ãã
$ cd dify/api $ docker build . -t dify-api
ãã®ã¾ã¾docker-composeã使ãã¨ããã¼ã«ã«ã®dify-api dockerã¤ã¡ã¼ã¸ãå©ç¨ãããªãããã以ä¸ã®ãããªdocker-compose.override.yamlã使ãã¾ãã
dify/docker/docker-compose.override.yaml
services: api: image: dify-api:latest worker: image: dify-api:latest
ãã®ç¶æ³ã§
$ docker compose up -d
ããã¨çµã¿è¾¼ã¿ãã¼ã«ãå ¥ã£ãç¶æ³ã§difyãèµ·åãã¾ãã
åä½ç¢ºèª
difyãèµ·åããããããã¼ã«ãã確èªãã¦ãMy Toolsããåå¨ãã¦ããã確èªãã¦ãã ããã
ããã«ãMy Toolsãã鏿ããã¨ãFile Writerãããããã¨ããã©ã¡ã¼ã¿ãContentæååãå¿
é ã§ãããã¨ã確èªã§ãã¾ãã
ã¹ã¿ã¸ãªã§ã¯ã¼ã¯ããã¼ã使ãããéå§ãã®å
¥åãã£ã¼ã«ãã«ãqueryãã¨ããæååå
¥åã®ãã©ã¡ã¼ã¿ã追å ãã¾ãã
éå§ -> ï¼ -> ãã¼ã« -> My Tools/File Writer ã鏿ãããå
容ãã«ãéå§/(x)queryãã鏿ãã¾ãã
File Writer -> + -> ãçµäºãã§ãåºå夿°ã«ãFIle Writer/(x)filesãã鏿ãã¾ãã

çµã¿è¾¼ã¿ãã¼ã«ããã¡ã¤ã«ãåºåããå ´æ
ãã¼ã«ããã¡ã¤ã«ãåºåããå ´æã¯ãdifyãdockerã§åããã¦ããå ´åã以ä¸ã®dockerç¨ã®ãã£ã¬ã¯ããªã®ä¸ã«ãããã«UIDã§ãã£ã¬ã¯ããªãä½ããã¦ããã®ä¸ã«åºåããã¾ãã
dify/docker/volumes/app/storage/tools/
ä¾ãã°ä»¥ä¸ã®ãããªãã¡ã¤ã«åã§ããã¹ããã¡ã¤ã«ã使ããã¾ãã
dify/docker/volumes/app/storage/tools/de4a84eb-ac6e-45d3-a8b6-49f776dfc900/cf4ff00b019a4f9c81cce53cc0137aa3.txt
URLã確èªãã¦ãæ£ãããã«è¦ããã®ã«ãã£ãã·ã³ã°ãµã¤ãã«ã¤ãªãã£ã¦ãã¾ãæ»æææ³
ãã£ãã·ã³ã°ã®HTMLã¡ã¼ã«çã§ãã¡ããã¨URLã確èªãã¦ãæ£ãããã«è¦ããã®ã«ããã£ãã·ã³ã°ãµã¤ãã«ç¹ãã£ã¦ãã¾ãæ»æææ³ãç´¹ä»ããã¦ãã¾ããã
仿¥çºè¦ãããã£ãã·ã³ã°ã¡ã¼ã«ããªã³ã¯é¨åã«ã«ã¼ã½ã«åããã¦ãæ£è¦ã®ãã¡ã¤ã³ã»ã»ã«ã¿ãããã©ãå®ã¯@以éã®URLã¨ã³ã³ã¼ããããé¨åã䏿£ãã¡ã¤ã³ã§ããã¢ã¯ã»ã¹å ã®ãã¡ã¤ã³URLã¨ã³ã³ã¼ããã¦ãã¡ããã¨ãã©ã¦ã¶ã§ã¢ã¯ã»ã¹ã§ãã¡ãããã§ããã»ã»ã» pic.twitter.com/yL6oUfFPa4
— Koichi (@x64koichi) 2024å¹´8æ29æ¥
ãã®ææ³ã使ã£ã¦ã以ä¸ã®ããã«ä¾ãä½ã£ã¦ã¿ã¾ããã
ãããªãµãã«URLãæ¸ãã¦ããã¨ãã½ã¼ã¹ã確èªãã¦ããhttps ://www.smbc-card.com/â¦ãã«ç¹ããããã«è¦ãã¾ãããå®éã«ã¯ã¤ãã¼ã®å¤©æ°ã表示ããã¦ãã¾ãã¾ãã
<a href="https://www.smbc-card.comâloginâuser=foobar@%77%65%61%74%68%65%72%2E%79%61%68%6F%6F%2E%63%6F%2E%6A%70/%77%65%61%74%68%65%72/">www.smbc-card.com</a>
å®éã®ãªã³ã¯ä¾
twitterã§ç°¡åãªèª¬æãæ¸ããã®ã§ãããããå°ã詳ãã説æãã¾ãã
ãã¼ãªãã»ã©ãã¦ã¼ã¶èªè¨¼ã®å½¢å¼ãhttps ://username:password@example.comããå©ç¨ãã¦ããã®ãã
— Kiyoshi SATOH (@stealthinu) 2024å¹´8æ29æ¥
ãhttps ://www .smbc.com/foo/bar@%74%72%65%77%62ãã®ãwww .smbc.com/foo/barãé¨åãã¦ã¼ã¶åã¨ãã¦æ±ãããã®ããã¢ã¯ã»ã¹å ã®ãexample .comãã¯URLã¨ã³ã³ã¼ãããã¦ã¦æªããã¦ãæ°ä»ããªãã https://t.co/sKNbV3xTy8
å½è£ ææ³
åºæ¬çãªææ³ã¨ãã¦Basicèªè¨¼ã®URLè¨è¿°ãå©ç¨ããã¦ãã¾ãã
Basicèªè¨¼ã¨ã¯ãã¦ã§ããµã¤ãã¸ã¦ã¼ã¶åã¨ãã¹ã¯ã¼ãã§ã¢ã¯ã»ã¹èªè¨¼ããããã®æãåç´ãªèªè¨¼æ¹å¼ã®ä¸ã¤ã§ãã
Basicèªè¨¼ã§ã¯ã¦ã¼ã¶åã¨ãã¹ã¯ã¼ããå¿
è¦ã§ãããURLã«ã¦ã¼ã¶åã¨ãã¹ã¯ã¼ããå«ãã å½¢ã§ã®è¨è¿°ãåºæ¥ã¾ãã
URLã®å½¢å¼ã¯ä»¥ä¸ã®ããã«ãªã£ã¦ãã¾ãã
https://username:[email protected]
- æ¥ç¶ãããµã¤ã: https://example.com
- ã¦ã¼ã¶å: username
- ãã¹ã¯ã¼ã: password
ãã®ã¨ããã¹ã¯ã¼ãã¯çç¥ãã¦
https://[email protected]
ã¨æ¸ããã¨ãåºæ¥ã¾ãã
ãã®å½¢å¼ãæªç¨ããæ»æè ã¯ä»¥ä¸ã®ãããªURLã使ãã¦ãã¾ãã
https://[email protected]/weather/
- æ¥ç¶ãããµã¤ã: https://weather.yahoo.co.jp/weather/
- ã¦ã¼ã¶å: www.smbc-card.com
ã¤ã¾ããã±ã£ã¨è¦ã§æ¥ç¶å ãµã¤ãã«è¦ããã¨ãããå®ã¯ã¦ã¼ã¶åã«ãªã£ã¦ããããã§ãã
æ»æè ããã«ãä¸è¨ã®ããã«URLã¨ã³ã³ã¼ãã£ã³ã°ã使ç¨ãã¦å®éã®ã¢ã¯ã»ã¹å ãé è½ãããã¨ã§ãããçããã«ããURLã«ãã¦ãã¾ãã
https://www.smbc-card.com@%77%65%61%74%68%65%72%2E%79%61%68%6F%6F%2E%63%6F%2E%6A%70/%77%65%61%74%68%65%72/
ããã«ãä¸è¬çãªã¹ã©ãã·ã¥ã/ãã®ä»£ããã«åæ°ã¹ã©ãã·ã¥ãâãï¼U+2044ï¼ã使ç¨ãã¦ãã¾ãã
ã¦ã¼ã¶åé¨åã«ã/ãã使ããªãã®ã§ãããU+2044ã®ã¹ã©ãã·ã¥ãªãã°ä½¿ããã¨ãåºæ¥ã¾ãã
ããã«ããããã¡ã¤ã³ã ãã§ãªãããèªç¶ã«ãã°ã¤ã³ç¨ã®URLã£ã½ãå½è£
ãããã¨ãå¯è½ã§ãã
https://www.smbc-card.comâloginâuser=foobar@%77%65%61%74%68%65%72%2E%79%61%68%6F%6F%2E%63%6F%2E%6A%70/%77%65%61%74%68%65%72/
ããã¾ã§ããªãã¦ãããã¡ã¤ã³åãè¦ãããããã¨ãã§ããã°ååã«æãã¾ããããã¡ã¤ã³åï¼æ¬æ¥ã®ã¦ã¼ã¶åï¼ã®å¾ãã«éä»å
ã®ã¦ã¼ã¶IDæ
å ±ãæããããã¨ãããã£ãã®ããããã¾ããã
å¯¾çæ¹æ³
åã«ãçã«æ¥ç¶ããå ã®URLã確èªãã¦ãããã ãã§ãé£ããã®ã«ããã®ãããªæ¹æ³ãããã¨ããã®ãæ®éã®äººã«èªèãã¦ããã£ã¦URLã®ç¢ºèªãã¦ãããã®ã¯ã¾ãä¸å¯è½ã ã¨æãã¾ãã
ãªã®ã§ç©¶æ¥µçã«ã¯ãå©ç¨ãã¦ããä¼ç¤¾ããã§ãã£ã¦ããéããã¦ããã¡ã¼ã«ã»SNSã¡ãã»ã¼ã¸ã®URLã¯éããªããã«å°½ããã¨æãã¾ãã
ååãé¨ããã¦éããã¦ããã¡ã¼ã«ããã¢ã«ã¦ã³ããä¹ã£åããã¦éããã¦ããã¡ãã»ã¼ã¸ããããããç¥ã£ã¦ããç¸æããéããã¦ãããã®ã§ããã¿ã¤ãã³ã°çã«ãããããã°ä¿¡ç¨ããªãã¹ãã§ãããã
NSEG åå¼·ä¼ #110 ãIT æè¡è ã¨ã«ãã
NSEGåå¼·ä¼ããã¤ãã¨ã¡ãã£ã¨éã£ãå 容ã®ãã¿ã§éãããèªåãçºè¡¨ããã¦ãã¾ããã
ä»åã¯å
容ã©ãããæ¼é¡ãéå
¬éã«ããã¦ããã ããã®ã§ãããæ¸¾èº«ã®å
容ã ã£ãã¨æãã¾ãã
çé¢ç®ã«æè¡çãªãã¨ã°ã£ããã£ã¦ã¦ãã大å¤ãªç®ã«å·»ãè¾¼ã¾ãããã¨ãããã®ã§æ°ãã¤ããªãã¨ãã¨ããå
容ã§ãã
ã¡ããã©ä¸ã¤åã®ã¨ã³ããªãåæ³¨å ã®åç£è©±ã§ããããã¡ãã§ã¯ãªãã¦ãã®ä¸ã¤åã®ã»ãã®è©±ã§ããã
åæ³¨å ã®ä¼ç¤¾ãåç£ããä»¶
å»å¹´ã®8æããããããLLM+RAGã®PoCããã³ã·ã¹ãã éçºã®ä»äºãåæ³¨ããã¦ããã ãã¦ããä¼ç¤¾ãåç£ãã¾ããã
ä¸ç·ã«ä»äºããã¦ããã ãã¦ããCTOã®æ±ãããæ¸ãããã¨ã³ããªã§ãã
ã¡ãã£ã¨è©±é¡ã«ãªã£ããã§ãããä»ï¼2024/8/30ç¾å¨ï¼ã¯éå
¬éã«ãªã£ã¡ãã£ã¦ã¾ããã
note.com
åè¨éçºã§é¢ãã£ã¦ãã人ãã¡ã¯ã¿ãªãã嵿¨©è
ã¨ãªã£ã¦ãã¾ãã¾ããããã¡ããåãã§ãã
ä»å¹´ã®æ¥ã«ã¯æ¥åæ¡å¤§ã®ããã«ãªãã£ã¹ã移転ãããããã¦ãæ¯æ°ãããªãâ¦ã¨æã£ã¦ããã¨ããã§ããã ã£ãã®ã§ã ãã¶ã³ã£ãããã¾ããã
ä»äºãã¦ãä¼ç¤¾ãï¼äºå®ä¸ã®ï¼åç£ãï¼å¹´ã¶ãï¼é£ç¶ã¨ããç¶æ³ã§ããç¥ãã«ã§ãè¡ã£ãã»ããããã®ããã⦠ã¨ãªã£ã¦ãã¾ãã
GCPã®ä¼ç¤¾ã¢ã«ã¦ã³ãã«ç»é²ãã¦ãä»ã®ããã¸ã§ã¯ãã«å ¥ããªãåé¡
Googleã®ä¼ç¤¾ã¢ã«ã¦ã³ããçºè¡ãã¦ããã ãã¦ããããã®ã¢ã«ã¦ã³ãã§GCPã«ã権éç»é²ãã¦ããã£ãã«ãããããããGCPãã°ã¤ã³ãã¦ãä»ã®ããã¸ã§ã¯ããè¦ãã¦ããªããå ¥ããªããã¨ããåé¡ãèµ·ãã¾ããã
ã¢ã«ã¦ã³ãã®ç»é²ã¯åºæ¥ã¦ãããããèªåã§ããã¸ã§ã¯ããä½ããã¨ã¯åºæ¥ã¦ãããã¯ç®¡çè
ã®æ¹ããã¯åé¡ãªãè¦ããã¨ãåºæ¥ã¦ãã¾ããã
ãªã®ã§ããã°ã¤ã³åºæ¥ãªãã¨ãããããåé¡ã§ã¯ãªããã¾ã権éãä½åº¦ã確èªãã¦ããã ãã¦ãåé¡ãªãç¶æ³ã§ããã
ãããè²ã ã¨èª¿ã¹ãã調ã¹ã¦ããã£ãããã¦ãã§æçµçã«ã¯ä¸è¨ã®ã¤ã³ããã¼ã·ã§ã³ã®URLãå©ããã¨ããæ¹æ³ã§è§£æ±ºã§ãã¾ããã
ä¸åº¦å ¥ãã¦ãã¾ãã°ãã¨ã¯é常éã使ããããã«ãªãã¾ããã
ã¨ã«ããåå ãããããªãã£ã¦ãã£ã¡ãå°ã£ãã®ã§ãåèã«ãªãã°ã
NSEGã§ãRAGã®ä»çµã¿ã¨ãããã課é¡ãã¨ãã話ããã¾ãã
åå¹´ã¶ãã«NSEGéå¬ããã¾ããã
ããï¼å¹´ãããLLM+RAGã®ã·ã¹ãã ãæ¸ãã¦ããã®ã§ãRAGã«ã¤ãã¦ã®ç°¡åãªèª¬æã¨ãã©ããã£ã課é¡ãããã®ãã«ã¤ãã¦çºè¡¨ãã¾ããã
èªåã®é¢ãã£ã¦ããã®ã§ã¯ãã¨ã«ããåçå質ãä¸ããããã«ã精度ã®é«ãããã¹ãåãä¸çªéè¦ã§ããã
渡ããã¦ããPDFãã©ã¤ãã©ãªçã§ãã®ã¾ã¾ããã¹ãåãã¦ãã人éãè¦ãç®ã§ã®æ§é åãããã¦ãããããããã¾ã精度ãé«ããªãããé«å質ã«ããã«ã¯äººéãæ§é åããããã¹ãã¸å¤æããã®ããã£ã¨ã广çã§ããã
Dell G15ã§WiFiãç¹ãã£ã¦ãã®ã«ã¤ã³ã¿ã¼ãããæ¥ç¶ãåããåé¡
æè¿ãã³ã¯ã¼ãã³ã°ã¹ãã¼ã¹ã§ä»äºãããããã«ãªã£ã¦ãã¼ãPCã¨ãã£ã¹ãã¬ã¤æã£ã¦éã£ã¦ããã®ã§ããããã£ã¦ãã¨WiFiãç¹ãã£ã¦ããã®ã«ã¤ã³ã¿ã¼ãããæ¥ç¶ãåãããã¨ããç¶æ³ãã¡ããã¡ããçºçãã¦å°ããã¨ãããã¾ããã
ã¾ãããããªãWiFiã®é»æ³¢å¼·åº¦ã1ã«ãªã£ã¦ããããã¦ããªãã§ï¼ã¨ãªã£ã¦ãã¾ããã
調ã¹ã¦ã¿ãã¨ãWiFiã®é»æ³¢å¼·åº¦ã1ã«ãªãã®ã¯2.4Gã«ãªã£ã¦ãã¾ã£ã¦ãã¦ãæ¥ç¶é度ã50Mã¨ãã«ãªã£ã¦ãã¾ããã
ããããã ãã§ã¤ã³ã¿ã¼ãããã¸ã®æ¥ç¶ãåãã¦ãã¾ãã¨ããã®ãããããã®ã§ãããã¡ãã£ã¨èª¿ã¹ã¦ã¿ã¾ããã
ããããã¨ãã®ãã¼ãã ã¨çµæ§ããåé¡ï¼ãããã¨ãããã¨ããããã¾ããã
WiFiã®ãã©ã¤ãã¼ã¨ããããKiller Intelligence Centerãã¨ããå°ç¨ã®ã¢ããªããããããã¤ãä½è¨ãªãã¨ãã¦YouTubeã¨ãã¸ã®æ¥ç¶ãã§ããªããªã£ãããããããã
ã§ãWiFièªä½ã¯ç¹ãã£ã¦ããã®ã«ã¤ã³ã¿ã¼ãããæ¥ç¶ãåããã¨ããã®ã¯ãSmart Byteã¨ããã¢ããªã«ããä¾ãå¤ãã£ãã®ã§ãããèªåã®ç°å¢ã«ã¯å ¥ã£ã¦ãã¾ããã§ããã
ã§ããªãã«ãã¦ãKiller Intelligence Centerãããããã®ã§ããã®å¶å¾¡ã䏿¦å
¨é¨åã£ã¦ã¿ã¾ããã
ããã¨ããã ãã§å®å®çã«ç¹ããããã«ãªãã¾ããã
ä¸è¨ã®ã¨ã³ããªã§ã¯Killer Network Serviceèªä½ãæ¢ããããã«ããã¦ãã¦ãããçµæ§ã¡ã¢ãªãCPU使ã£ã¦ãã¨ãæãã®ã§ããããã¦ãã¾ã£ãã»ããããããã«æãã¾ãã
NSEG2024 æ°å¹´ããªã¼ãã¬ã¼ã³å¤§ä¼ã§é³å£°å¤æã¨çæAIã«ã¤ãã¦è©±ãã¾ãã
ä¹ ãã¶ãã«NSEGåå¼·ä¼ãè¡ãããã®ã§ããã®ï¼å¹´åï¼å®è³ªã¯ï¼å¹´ãããï¼ãã£ã¦ãããã£ã¼ãã©ã¼ãã³ã°ãå©ç¨ããé³å£°å¤æããã¥ã¼ã©ã«å§ç¸®ã«ã¤ãã¦è©±ããã¾ããã
NSEG 2024 æ°å¹´ããªã¼ãã¬ã¼ã³å¤§ä¼ - è³æä¸è¦§ - connpass nseg.connpass.com
é³å£°å¤æã¨çæAIï¼éçºè
è¦ç¹ããã®1.5å¹´ã®æ¯ãè¿ã - Speaker Deck
speakerdeck.com
ä»åããã¤ãã®ãããªæè¡çãªè§£èª¬ã§ã¯ãªãã¦ãã©ã¡ããã¨ããã¨åã®ãã®ï¼å¹´åã«ãã£ããã¨ã®æ¯ãè¿ããä»ã®æ¹ã«ã追ä½é¨ãã¦ããã ãããã®ä¸ã§é³å£°ç³»ãä¸å¿ã¨ããçæç³»AIã§ã©ããªãã¨ãèµ·ãã¦ãããæãã¦ããããã¿ãããªãã®ããããã¾ããã
ãªã®ã§ãã¬ã¼ã³è³æã®ææ°ããããå¤ããªã£ã¦ãã¾ã£ãã®ã§ãããå 容ã¯èãã§ãã
ã§ãã以åãã£ãåå¼·ä¼ã§è©±ãããã¨ããä¾ãã°ï¼å¹´åã«è©±ãã¦ããããªãã¨ãã彿ã¯ãããªæè¦ã ã£ããã ãªã£ã¦ãã¨ãè³æã¨ãã¦ä½¿ããã®ã§ãä»åã®ãããã2022ï½3å¹´ãããã§é³å£°çæã¨ã夿ã£ã¦ãã®ãããã®å°ç¹ã ã£ããã ãªãã¨ããã®ãæ¯ãæ¿ããããã®ã«ãªãã®ã§ã¯ã¨æã£ã¦ãã¾ãã
ã¨ã«ããããã£ã¼ãã©ã¼ãã³ã°ç³»ã®æè¡ã¯å ã æµéæ©ãã£ãã®ããçæç³»AIã®æµãã§æ´ã«æ¥éã«éããªã£ã¦ããã®ã§ããªãã¨ããã®æµãã«ä¹ã£ã¦ãã©ãå¤åãã¦ããã®ããå³ããããã¨ããã§ãã
ãã®ãã¬ã¼ã³ã§æ¸ãã¦ãããã«ããããã¨ï¼å¹´ä»¥å ã§ãã£ã¨åã®è½åãè¶ ãããã¦ãã¨æã£ã¦ããã®ã§â¦
GKEå ã®postgresãGUIã§è§¦ããã
GKEã®postgresã®ä¸èº«ã確èªãããã¨ãã䏿¦ã¢ããªã±ã¼ã·ã§ã³ã®podã®shellã«å ¥ã£ã¦ãããããpsqlã³ãã³ãå©ãã¦æ¥ç¶ãã¦SQLå©ãã¦ãã¨ããæ¹æ³ã§è¦ã¦ãã¾ããã
ãããããã«ã ããããã®ã§ãæ®éã«ç°¡åã«GUIã§è¦ããæ¹æ³ãããã ããã¨GPT-4æ§ã«èãã¦ã¿ã¾ããã
kubectlã§ãã¼ããã©ã¯ã¼ãè¨å®åºæ¥ãã®ã§ããã¼ããã©ã¯ã¼ããã¦ããã«ç¹ãã°ããã¨ã®ãã¨ã
kubectl port-forward svc/postgres-service 15432:5432
ããã§GKEå ã®postgresã®ãã¼ãã5432ãâ ãã¼ã«ã«ã®ãã¼ãã15432ãã¸ãã¼ããã©ã¯ã¼ããã¦ãããã¨ã®ãã¨ã
ã§ã¾ãããã§ç¨ã¯è¶³ããã®ã§ãããå®ã¯æ®æ®µããk9sã使ã£ã¦ããã®ã§ãk9sã使ã£ã¦ãã§ãããã¨ããããã¾ããã
k9sãèµ·åãã¦ãserviceã¨ãpodã®è¡¨ç¤ºããã¦ããã¨ä¸é¨ã¨ãã¥ã¼ã«
ãï¼shift-fï¼ Port-Forwardã
ã¨åºã¦ããã®ã§ãpostgresã®ãµã¼ãã¹ãpodã®ä¸ã§ S-f æ¼ãã¨ããã¼ããã©ã¯ã¼ãã®è¨å®ç»é¢ãåºãã®ã§é©å½ã«å¥½ããªãã©ã¯ã¼ãå
ã®ãã¼ããæå®ãã¾ãã
ããã ãã§ãã
ããã ãã®ãã¨ãªã®ã§ãããGKEå ã®ãã¼ã¿ç¢ºèªã®å¿ççããã©ããããã ãã¶æ¸ãã¾ããã