fix mcp asset
This commit is contained in:
parent
cc2ee5ddb7
commit
7618f88a9b
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,4 +2,3 @@
|
||||
**.lock
|
||||
output.json
|
||||
config/*.db
|
||||
MCP
|
||||
|
3
mcp/cli.py
Normal file
3
mcp/cli.py
Normal file
@ -0,0 +1,3 @@
|
||||
# cli.py
|
||||
def main():
|
||||
print("Hello MCP!")
|
30
mcp/scripts/ask.py
Normal file
30
mcp/scripts/ask.py
Normal file
@ -0,0 +1,30 @@
|
||||
import httpx
|
||||
import os
|
||||
import json
|
||||
from context_loader import load_context_from_repo
|
||||
from prompt_template import PROMPT_TEMPLATE
|
||||
|
||||
OLLAMA_HOST = os.getenv("OLLAMA_HOST", "http://localhost:11434")
|
||||
OLLAMA_URL = f"{OLLAMA_HOST}/api/generate"
|
||||
OLLAMA_MODEL = os.getenv("OLLAMA_MODEL", "syui/ai")
|
||||
|
||||
def ask_question(question, repo_path="."):
|
||||
context = load_context_from_repo(repo_path)
|
||||
prompt = PROMPT_TEMPLATE.format(context=context[:10000], question=question)
|
||||
|
||||
payload = {
|
||||
"model": OLLAMA_MODEL,
|
||||
"prompt": prompt,
|
||||
"stream": False
|
||||
}
|
||||
|
||||
#response = httpx.post(OLLAMA_URL, json=payload)
|
||||
response = httpx.post(OLLAMA_URL, json=payload, timeout=60.0)
|
||||
result = response.json()
|
||||
return result.get("response", "返答がありませんでした。")
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
question = " ".join(sys.argv[1:])
|
||||
answer = ask_question(question)
|
||||
print("\n🧠 回答:\n", answer)
|
11
mcp/scripts/context_loader.py
Normal file
11
mcp/scripts/context_loader.py
Normal file
@ -0,0 +1,11 @@
|
||||
import os
|
||||
|
||||
def load_context_from_repo(repo_path: str, extensions={".rs", ".toml", ".md"}) -> str:
|
||||
context = ""
|
||||
for root, dirs, files in os.walk(repo_path):
|
||||
for file in files:
|
||||
if any(file.endswith(ext) for ext in extensions):
|
||||
with open(os.path.join(root, file), "r", encoding="utf-8", errors="ignore") as f:
|
||||
content = f.read()
|
||||
context += f"\n\n# FILE: {os.path.join(root, file)}\n{content}"
|
||||
return context
|
11
mcp/scripts/prompt_template.py
Normal file
11
mcp/scripts/prompt_template.py
Normal file
@ -0,0 +1,11 @@
|
||||
PROMPT_TEMPLATE = """
|
||||
あなたは優秀なAIアシスタントです。
|
||||
|
||||
以下のコードベースの情報を参考にして、質問に答えてください。
|
||||
|
||||
[コードコンテキスト]
|
||||
{context}
|
||||
|
||||
[質問]
|
||||
{question}
|
||||
"""
|
12
mcp/setup.py
Normal file
12
mcp/setup.py
Normal file
@ -0,0 +1,12 @@
|
||||
from setuptools import setup
|
||||
|
||||
setup(
|
||||
name='mcp',
|
||||
version='0.1.0',
|
||||
py_modules=['cli'],
|
||||
entry_points={
|
||||
'console_scripts': [
|
||||
'mcp = cli:main',
|
||||
],
|
||||
},
|
||||
)
|
@ -24,7 +24,7 @@ pub fn mcp_setup() {
|
||||
assert!(status.success(), "git clone 実行時にエラーが発生しました");
|
||||
}
|
||||
|
||||
let asset_base = PathBuf::from("assets/mcp");
|
||||
let asset_base = PathBuf::from("mcp");
|
||||
let files_to_copy = vec![
|
||||
"cli.py",
|
||||
"setup.py",
|
||||
|
Loading…
x
Reference in New Issue
Block a user