ਇਹ ਸੇਵਾ ਮਾਡਲ ਕੰਟੈਕਸਟ ਪ੍ਰੋਟੋਕੋਲ (MCP) ਰਾਹੀਂ ਬੇਸਿਕ ਕੈਲਕੂਲੇਟਰ ਕਾਰਜਾਂ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ, ਜੋ ਕਿ Spring Boot ਨਾਲ WebFlux ਟ੍ਰਾਂਸਪੋਰਟ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ। ਇਹ ਨਵੀਂ ਸਿਖਾਈ ਜਾ ਰਹੀ MCP ਲਾਗੂ ਕਰਨ ਦੀ ਸਮਝ ਲਈ ਸਧਾਰਨ ਉਦਾਹਰਣ ਵਜੋਂ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ।
ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, MCP Server Boot Starter ਸੰਬੰਧਿਤ ਦਸਤਾਵੇਜ਼ ਦੇਖੋ।
ਸੇਵਾ ਇਹ ਦਰਸਾਉਂਦੀ ਹੈ:
- SSE (ਸਰਵਰ-ਭੇਜੇ ਗਟਨਾ) ਲਈ ਸਹਾਇਤਾ
- Spring AI ਦੀ
@Toolਐਨੋਟੇਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਵੈਚਾਲਕ ਸਾਧਨ ਰਜਿਸਟਰੇਸ਼ਨ - ਬੇਸਿਕ ਕੈਲਕੂਲੇਟਰ ਫੰਕਸ਼ਨ:
- ਜੋੜ, ਘਟਾਓ, ਗੁਣਾ, ਵੰਡ
- ਪਾਵਰ ਗਣਨਾ ਅਤੇ ਵਰਗਮੂਲ
- ਮੋਡਯੂਲਸ (ਬਾਕੀ) ਅਤੇ ਪਰਮAbsoluteਮੂਲ
- ਕਾਰਜ ਵੇਰਵੇ ਲਈ ਸਹਾਇਕ ਫੰਕਸ਼ਨ
ਇਹ ਕੈਲਕੂਲੇਟਰ ਸੇਵਾ ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਯੋਗਤਾਵਾਂ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ:
-
ਮੁੱਢਲੇ ਅੰਕਗਣਿਤ ਕਾਰਜ:
- ਦੋ ਨੰਬਰਾਂ ਦਾ ਜੋੜ
- ਇੱਕ ਨੰਬਰ ਨੂੰ ਦੂਜੇ ਤੋਂ ਘਟਾਉਣਾ
- ਦੋ ਨੰਬਰਾਂ ਦਾ ਗੁਣਾ
- ਇੱਕ ਨੰਬਰ ਨੂੰ ਦੂਜੇ ਨਾਲ ਵੰਡਣਾ (ਜ਼ੀਰੋ ਵੰਡ ਚੈੱਕ ਨਾਲ)
-
ਅਗਰਗਾਮੀ ਕਾਰਜ:
- ਪਾਵਰ ਗਣਨਾ (ਬੇਸ ਨੂੰ ਉਚਾਰਨ ਤੇ ਚੁੱਕਣਾ)
- ਵਰਗਮੂਲ ਗਣਨਾ (ਨਕਾਰਾਤਮਕ ਨੰਬਰ ਚੈੱਕ ਨਾਲ)
- ਮੋਡਯੂਲਸ (ਬਾਕੀ) ਗਣਨਾ
- ਪਰਮAbsoluteਮੂਲ ਗਣਨਾ
-
ਸਹਾਇਕ ਸਿਸਟਮ:
- ਸਾਰੇ ਉਪਲਬਧ ਕਾਰਜਾਂ ਦੀ ਵਿਆਖਿਆ ਕਰਨ ਵਾਲੀ ਅੰਦਰੂਨੀ ਸਹਾਇਕ ਫੰਕਸ਼ਨ
ਸੇਵਾ MCP ਪ੍ਰੋਟੋਕੋਲ ਰਾਹੀਂ ਹੇਠਾਂ ਦਿੱਤੇ API ਅੰਤ ਬਿੰਦੂ ਉਘਾੜਦੀ ਹੈ:
add(a, b): ਦੋ ਨੰਬਰਾਂ ਨੂੰ ਇਕੱਠੇ ਜੋੜੋsubtract(a, b): ਦੂਜੇ ਨੰਬਰ ਨੂੰ ਪਹਿਲੇ ਤੋਂ ਘਟਾਓmultiply(a, b): ਦੋ ਨੰਬਰਾਂ ਨੂੰ ਗੁਣਾ ਕਰੋdivide(a, b): ਪਹਿਲੇ ਨੰਬਰ ਨੂੰ ਦੂਜੇ ਨਾਲ ਵੰਡੋ (ਜ਼ੀਰੋ ਚੈੱਕ ਨਾਲ)power(base, exponent): ਨੰਬਰ ਦੀ ਪਾਵਰ ਗਣਨਾ ਕਰੋsquareRoot(number): ਵਰਗਮੂਲ ਗਣਨਾ ਕਰੋ (ਨਕਾਰਾਤਮਕ ਨੰਬਰ ਚੈੱਕ ਨਾਲ)modulus(a, b): ਵੰਡਨ ਵੇਲੇ ਬਾਕੀ ਦੀ ਗਣਨਾ ਕਰੋabsolute(number): ਪਰਮAbsoluteਮੂਲ ਦੀ ਗਣਨਾ ਕਰੋhelp(): ਉਪਲਬਧ ਕਾਰਜਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰੋ
com.microsoft.mcp.sample.client ਪੈਕੇਜ ਵਿੱਚ ਇੱਕ ਸਧਾਰਨ ਟੈਸਟ ਕਲਾਇੰਟ ਸ਼ਾਮਲ ਹੈ। SampleCalculatorClient ਕਲਾਸ ਕੈਲਕੂਲੇਟਰ ਸੇਵਾ ਦੇ ਉਪਲਬਧ ਕਾਰਜਾਂ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ।
ਪਰਜੈਕਟ ਵਿੱਚ com.microsoft.mcp.sample.client.LangChain4jClient ਵਿੱਚ ਇੱਕ LangChain4j ਉਦਾਹਰਣ ਕਲਾਇੰਟ ਸ਼ਾਮਲ ਹੈ ਜੋ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਕਿਵੇਂ LangChain4j ਅਤੇ GitHub ਮਾਡਲਾਂ ਨਾਲ ਕੈਲਕੂਲੇਟਰ ਸੇਵਾ ਨੂੰ ਜੋੜਨਾ ਹੈ:
-
GitHub Token ਸੈਟਅਪ:
GitHub ਦੇ AI ਮਾਡਲਾਂ (ਜਿਵੇਂ phi-4) ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ GitHub ਵਿਅਕਤੀਗਤ ਪਹੁੰਚ ਟੋਕਨ ਦੀ ਜ਼ਰੂਰਤ ਹੈ:
a. ਆਪਣੇ GitHub ਖਾਤੇ ਸੈਟਿੰਗਸ 'ਤੇ ਜਾਓ: https://github.com/settings/tokens
b. "Generate new token" → "Generate new token (classic)" 'ਤੇ ਕਲਿਕ ਕਰੋ
c. ਆਪਣੇ ਟੋਕਨ ਨੂੰ ਇੱਕ ਵਿਆਖਿਆਤਮਕ ਨਾਮ ਦਿਓ
d. ਹੇਠਾਂ ਦਿੱਤੇ ਸਕੋਪ ਚੁਣੋ:
repo(ਪ੍ਰਾਈਵੇਟ ਰਿਪੋਜ਼ਿਟਰੀਜ਼ ਦਾ ਪੂਰਾ ਕੰਟਰੋਲ)read:org(ਸੰਗਠਨ ਅਤੇ ਟੀਮ ਮੈਂਬਰਸ਼ਿਪ ਪੜ੍ਹੋ, ਸੰਗਠਨ ਪ੍ਰਾਜੈਕਟ ਪੜ੍ਹੋ)gist(ਗਿਸਟ ਬਣਾਓ)user:email(ਯੂਜ਼ਰ ਈਮੇਲ ਪਤੇ (ਕੇਵਲ-ਪੜ੍ਹੋ) ਤੱਕ ਪਹੁੰਚ)
e. "Generate token" 'ਤੇ ਕਲਿਕ ਕਰੋ ਅਤੇ ਆਪਣੇ ਨਵੇਂ ਟੋਕਨ ਨੂੰ ਕਾਪੀ ਕਰੋ
f. ਇਸਨੂੰ ਵਾਤਾਵਰਣ ਚਰ 'ਤੇ ਸੈਟ ਕਰੋ:
Windows 'ਤੇ:
set GITHUB_TOKEN=your-github-tokenmacOS/Linux 'ਤੇ:
export GITHUB_TOKEN=your-github-tokeng. ਸਥਾਈ ਸੈਟਅਪ ਲਈ, ਆਪਣੇ ਵਾਤਾਵਰਣ ਚਰਾਂ ਵਿੱਚ ਸਿਸਟਮ ਸੈਟਿੰਗਸ ਰਾਹੀਂ ਸ਼ਾਮਲ ਕਰੋ
-
ਆਪਣੇ ਪਰਜੈਕਟ ਵਿੱਚ LangChain4j GitHub ਨਿਰਭਰਤਾ ਸ਼ਾਮਲ ਕਰੋ (ਜੋ ਪਹਿਲਾਂ ਹੀ pom.xml ਵਿੱਚ ਸ਼ਾਮਲ ਹੈ):
<dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-github</artifactId> <version>${langchain4j.version}</version> </dependency>
-
ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਕੈਲਕੂਲੇਟਰ ਸਰਵਰ
localhost:8080'ਤੇ ਚੱਲ ਰਿਹਾ ਹੈ
ਇਹ ਉਦਾਹਰਣ ਦਰਸਾਉਂਦੀ ਹੈ:
- SSE ਟ੍ਰਾਂਸਪੋਰਟ ਰਾਹੀਂ ਕੈਲਕੂਲੇਟਰ MCP ਸਰਵਰ ਨਾਲ ਕਨੈਕਟ ਹੋਣਾ
- LangChain4j ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਚੈਟ ਬੋਟ ਬਣਾਉਣਾ ਜੋ ਕਿ ਕੈਲਕੂਲੇਟਰ ਕਾਰਜਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ
- GitHub AI ਮਾਡਲਾਂ ਨਾਲ ਇਕਠੇ ਹੋਣਾ (ਹੁਣ phi-4 ਮਾਡਲ ਦੀ ਵਰਤੋਂ ਕਰ ਰਿਹਾ ਹੈ)
ਕਲਾਇੰਟ ਹੇਠਾਂ ਦਿੱਤੇ ਨਮੂਨਾ ਪੁੱਛਗਿੱਛਾਂ ਨੂੰ ਭੇਜਦਾ ਹੈ ਜੋ ਕਾਰਜਸ਼ੀਲਤਾ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ:
- ਦੋ ਨੰਬਰਾਂ ਦਾ ਜੋੜ ਗਣਨਾ ਕਰਨਾ
- ਇੱਕ ਨੰਬਰ ਦਾ ਵਰਗਮੂਲ ਲੱਭਣਾ
- ਉਪਲਬਧ ਕੈਲਕੂਲੇਟਰ ਕਾਰਜਾਂ ਬਾਰੇ ਸਹਾਇਕ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਨਾ
ਉਦਾਹਰਣ ਚਲਾਓ ਅਤੇ ਕਨਸੋਲ ਆਉਟਪੁੱਟ ਦੀ ਜਾਂਚ ਕਰੋ ਕਿ AI ਮਾਡਲ ਕਿਵੇਂ ਕੈਲਕੂਲੇਟਰ ਸਾਧਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪੁੱਛਗਿੱਛਾਂ ਦਾ ਜਵਾਬ ਦਿੰਦਾ ਹੈ।
LangChain4j ਕਲਾਇੰਟ GitHub ਦੇ phi-4 ਮਾਡਲ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਹੇਠਾਂ ਦਿੱਤੇ ਸੈਟਿੰਗਸ ਨਾਲ ਕਨਫਿਗਰ ਕੀਤਾ ਗਿਆ ਹੈ:
ChatLanguageModel model = GitHubChatModel.builder()
.apiKey(System.getenv("GITHUB_TOKEN"))
.timeout(Duration.ofSeconds(60))
.modelName("phi-4")
.logRequests(true)
.logResponses(true)
.build();ਵੱਖ-ਵੱਖ GitHub ਮਾਡਲਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਸਿਰਫ modelName ਪੈਰਾਮੀਟਰ ਨੂੰ ਕਿਸੇ ਹੋਰ ਸਮਰਥਿਤ ਮਾਡਲ 'ਤੇ ਬਦਲੋ (ਜਿਵੇਂ "claude-3-haiku-20240307", "llama-3-70b-8192", ਆਦਿ)।
ਪਰਜੈਕਟ ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਮੁੱਖ ਨਿਰਭਰਤਾਵਾਂ ਦੀ ਲੋੜ ਹੈ:
<!-- For MCP Server -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-server-webflux</artifactId>
</dependency>
<!-- For LangChain4j integration -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-mcp</artifactId>
<version>${langchain4j.version}</version>
</dependency>
<!-- For GitHub models support -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-github</artifactId>
<version>${langchain4j.version}</version>
</dependency>ਪਰਜੈਕਟ ਨੂੰ Maven ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬਣਾਓ:
./mvnw clean install -DskipTestsjava -jar target/calculator-server-0.0.1-SNAPSHOT.jarMCP Inspector MCP ਸੇਵਾਵਾਂ ਨਾਲ ਇੰਟਰਐਕਟ ਕਰਨ ਲਈ ਇੱਕ ਮਦਦਗਾਰ ਸਾਧਨ ਹੈ। ਇਸ ਕੈਲਕੂਲੇਟਰ ਸੇਵਾ ਨਾਲ ਇਸਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ:
-
ਨਵੇਂ ਟਰਮੀਨਲ ਵਿੰਡੋ ਵਿੱਚ MCP Inspector ਨੂੰ ਇੰਸਟਾਲ ਅਤੇ ਚਲਾਓ:
npx @modelcontextprotocol/inspector
-
ਵੈਬ UI ਨੂੰ ਐਕਸੈਸ ਕਰੋ ਐਪ ਦੁਆਰਾ ਦਿਖਾਈ ਗਈ URL 'ਤੇ ਕਲਿਕ ਕਰਕੇ (ਆਮ ਤੌਰ 'ਤੇ http://localhost:6274)
-
ਕਨੈਕਸ਼ਨ ਨੂੰ ਕਨਫਿਗਰ ਕਰੋ:
- ਟ੍ਰਾਂਸਪੋਰਟ ਪ੍ਰਕਾਰ ਨੂੰ "SSE" 'ਤੇ ਸੈਟ ਕਰੋ
- URL ਨੂੰ ਆਪਣੇ ਚੱਲ ਰਹੇ ਸਰਵਰ ਦੇ SSE ਅੰਤ ਬਿੰਦੂ 'ਤੇ ਸੈਟ ਕਰੋ:
http://localhost:8080/sse - "Connect" 'ਤੇ ਕਲਿਕ ਕਰੋ
-
ਸਾਧਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ:
- ਉਪਲਬਧ ਕੈਲਕੂਲੇਟਰ ਕਾਰਜਾਂ ਨੂੰ ਵੇਖਣ ਲਈ "List Tools" 'ਤੇ ਕਲਿਕ ਕਰੋ
- ਇੱਕ ਸਾਧਨ ਚੁਣੋ ਅਤੇ ਕਾਰਜ ਨੂੰ ਚਲਾਉਣ ਲਈ "Run Tool" 'ਤੇ ਕਲਿਕ ਕਰੋ
ਪਰਜੈਕਟ ਵਿੱਚ ਕੰਟੇਨਰਾਈਜ਼ਡ ਨਸਲ ਲਈ Dockerfile ਸ਼ਾਮਲ ਹੈ:
-
Docker ਚਿੱਤਰ ਬਣਾਓ:
docker build -t calculator-mcp-service . -
Docker ਕੰਟੇਨਰ ਚਲਾਓ:
docker run -p 8080:8080 calculator-mcp-service
ਇਹ ਕਰੇਗਾ:
- Maven 3.9.9 ਅਤੇ Eclipse Temurin 24 JDK ਨਾਲ ਇੱਕ ਬਹੁ-ਸਟੇਜ Docker ਚਿੱਤਰ ਬਣਾਓ
- ਇੱਕ ਅਨੁਕੂਲਿਤ ਕੰਟੇਨਰ ਚਿੱਤਰ ਬਣਾਓ
- ਸੇਵਾ ਨੂੰ ਪੋਰਟ 8080 'ਤੇ ਉਘਾੜੋ
- ਕੰਟੇਨਰ ਦੇ ਅੰਦਰ MCP ਕੈਲਕੂਲੇਟਰ ਸੇਵਾ ਸ਼ੁਰੂ ਕਰੋ
ਜਦੋਂ ਕੰਟੇਨਰ ਚੱਲ ਰਿਹਾ ਹੋਵੇ, ਤੁਸੀਂ http://localhost:8080 'ਤੇ ਸੇਵਾ ਤੱਕ ਪਹੁੰਚ ਸਕਦੇ ਹੋ।
-
ਟੋਕਨ ਅਨੁਮਤੀ ਮੁਸ਼ਕਲਾਂ: ਜੇ ਤੁਸੀਂ 403 ਫੋਰਬਿਡਨ ਐਰਰ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ, ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡੇ ਟੋਕਨ ਵਿੱਚ ਪੂਰਵ ਸ਼ਰਤਾਂ ਵਿੱਚ ਦਰਸਾਏ ਅਨੁਮਤੀਆਂ ਹਨ।
-
ਟੋਕਨ ਨਹੀਂ ਮਿਲਿਆ: ਜੇ ਤੁਸੀਂ "No API key found" ਐਰਰ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ, ਯਕੀਨੀ ਬਣਾਓ ਕਿ GITHUB_TOKEN ਵਾਤਾਵਰਣ ਚਰ ਠੀਕ ਤਰ੍ਹਾਂ ਸੈਟ ਹੈ।
-
ਰੇਟ ਲਿਮਿਟਿੰਗ: GitHub API ਵਿੱਚ ਦਰਾਂ ਦੀ ਸੀਮਾ ਹੈ। ਜੇ ਤੁਸੀਂ ਰੇਟ ਲਿਮਿਟ ਐਰਰ (ਸਥਿਤੀ ਕੋਡ 429) ਦਾ ਸਾਹਮਣਾ ਕਰਦੇ ਹੋ, ਕੁਝ ਮਿੰਟਾਂ ਦੀ ਉਡੀਕ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।
-
ਟੋਕਨ ਮਿਆਦ: GitHub ਟੋਕਨ ਮਿਆਦ ਪੂਰੀ ਕਰ ਸਕਦੇ ਹਨ। ਜੇ ਤੁਸੀਂ ਕੁਝ ਸਮੇਂ ਬਾਅਦ ਪ੍ਰਮਾਣਿਕਤਾ ਐਰਰ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ, ਇੱਕ ਨਵਾਂ ਟੋਕਨ ਬਣਾਓ ਅਤੇ ਆਪਣੇ ਵਾਤਾਵਰਣ ਚਰ ਨੂੰ ਅਪਡੇਟ ਕਰੋ।
ਜੇ ਤੁਹਾਨੂੰ ਹੋਰ ਮਦਦ ਦੀ ਜ਼ਰੂਰਤ ਹੈ, ਤਾਂ LangChain4j ਦਸਤਾਵੇਜ਼ ਜਾਂ GitHub API ਦਸਤਾਵੇਜ਼ ਦੀ ਜਾਂਚ ਕਰੋ।
ਅਸਵੀਕਰਤੀ:
ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ Co-op Translator ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸ਼ੁੱਧਤਾ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਣੀਕਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਇਸਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਮੂਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਉਤਪੰਨ ਹੋਣ ਵਾਲੀ ਕਿਸੇ ਵੀ ਗਲਤ ਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।
