اندپوینت تکمیل کد یا fill-in-the-middle برای تکمیل خطوط کد باز یا ناقص با استفاده از مدل Codestral طراحی شده است و به شما امکان میدهد به سرعت و با دقت بیشتری کد خود را تکمیل کنید. ازین مدل برای code autocorrection و code autocompletion توسط افزونههای IDE و ویرایشگرهای متن استفاده میشود. مدل Codestral یک مدل پیشرفته تولید کد است که به طور خاص برای وظایف تولید کد مانند تکمیل و تولید کد در بین خطوط بهینهسازی شده است. همچنین این مدل قابلیت تکمیل متن به زبان انگلیسی٬ فارسی و غیره را نیز دارد که در نوشتن کامنت یا متون دیگر میتواند مورد استفاده قرار بگیرد.
کاربردهای اندپوینت تکمیل کد #
اگر کاربری هستید که قصد دارید Codestral را به عنوان بخشی از یک افزونهی IDE مورد استفاده قرار دهید، توصیه میشود از اندپوینت https://api.gilas.io/v1/fim/completions
استفاده کنید.
اگر در حال توسعه یک افزونه یا برنامهای هستید که این اندپوینتها را مستقیماً در اختیار کاربر قرار میدهد و انتظار دارید که کاربران کلیدهای API
خود را وارد کنند، همچنان استفاده از این اندپوینت توصیه میشود.
ساخت حساب کاربری #
ابتدا، یک حساب کاربری جدید ایجاد کنید یا اگر صاحب حساب کاربری هستید وارد پنل کاربری خود شوید. سپس، به صفحه کلید API بروید و با کلیک روی دکمه “ساخت کلید API” یک کلید جدید برای دسترسی به Gilas API بسازید. مطمئن شوید که این کلید را در جای امنی ذخیره کرده و آن را با کسی به اشتراک نگذارید.
ارسال درخواست #
هنگام استفاده از اندپوینت تکمیل کد٬ کاربران میتوانند نقطه شروع کد را با استفاده از یک prompt
و نقطه پایانی کد را با استفاده از یک suffix
اختیاری و یک stop
اختیاری تعریف کنند. سپس مدل Codestral
کدی که باید بین این دو نقطه قرار گیرد را تولید میکند. این قابلیت مدل را برای وظایفی که به تولید یک بخش خاص از کد نیاز دارند ایدهآل میکند. در ادامه، سه مثال آورده شده است:
مثال ۱: تکمیل کد #
1curl --location 'https://api.gilas.io/v1/fim/completions' \
2--header 'Content-Type: application/json' \
3--header 'Accept: application/json' \
4--header "Authorization: Bearer $GILAS_API_KEY" \
5--data '{
6 "model": "codestral-latest",
7 "prompt": "def f(",
8 "suffix": "return a + b",
9 "max_tokens": 64,
10 "temperature": 0
11}'
1import os
2from mistralai import Mistral
3
4api_key = os.environ["GILAS_API_KEY"]
5api_url = "https://api.gilas.io/v1/fim/completions"
6client = Mistral(api_key=api_key, api_url=api_url)
7
8model = "codestral-latest"
9prompt = "def fibonacci(n: int):"
10suffix = "n = int(input('Enter a number: '))\nprint(fibonacci(n))"
11
12response = client.fim.complete(
13 model=model,
14 prompt=prompt,
15 suffix=suffix,
16 temperature=0,
17 top_p=1,
18)
19
20print(
21 f"""
22{prompt}
23{response.choices[0].message.content}
24{suffix}
25"""
26)
مثال ۲: تولید کد #
1curl --location 'https://api.gilas.io/v1/fim/completions' \
2--header 'Content-Type: application/json' \
3--header 'Accept: application/json' \
4--header "Authorization: Bearer $GILAS_API_KEY" \
5--data '{
6 "model": "codestral-latest",
7 "prompt": "def is_odd(n): \n return n % 2 == 1 \n def test_is_odd():",
8 "suffix": "",
9 "max_tokens": 64,
10 "temperature": 0
11}'
1import os
2from mistralai import Mistral
3
4api_key = os.environ["GILAS_API_KEY"]
5api_url = "https://api.gilas.io/v1/fim/completions"
6client = Mistral(api_key=api_key, api_url=api_url)
7
8model = "codestral-latest"
9prompt = "def is_odd(n): \n return n % 2 == 1 \ndef test_is_odd():"
10
11response = client.fim.complete(model=model, prompt=prompt, temperature=0, top_p=1)
12
13print(
14 f"""
15{prompt}
16{response.choices[0].message.content}
17"""
18)
مثال ۳: استفاده از توکن پایانی (stop token) #
1curl --location 'https://api.gilas.io/v1/fim/completions' \
2--header 'Content-Type: application/json' \
3--header 'Accept: application/json' \
4--header "Authorization: Bearer $GILAS_API_KEY" \
5--data '{
6 "model": "codestral-latest",
7 "prompt": "def is_odd(n): \n return n % 2 == 1 \n def test_is_odd():",
8 "suffix": "test_is_odd()",
9 "stop": ["\n\n"],
10 "max_tokens": 64,
11 "temperature": 0
12}'
1import os
2from mistralai import Mistral
3
4api_key = os.environ["GILAS_API_KEY"]
5api_url = "https://api.gilas.io/v1/fim/completions"
6client = Mistral(api_key=api_key, api_url=api_url)
7
8model = "codestral-latest"
9prompt = "def is_odd(n): \n return n % 2 == 1 \ndef test_is_odd():"
10suffix = "n = int(input('Enter a number: '))\nprint(fibonacci(n))"
11
12response = client.fim.complete(
13 model=model, prompt=prompt, suffix=suffix, temperature=0, top_p=1, stop=["\n\n"]
14)
15
16print(
17 f"""
18{prompt}
19{response.choices[0].message.content}
20"""
21)
برای اطلاع از تمام پارامترهای قابل استفاده هنگام فراخوانی اندپوینت تکمیل کد، میتوانید به مستندات Codestral API مراجعه کنید.
پستهای زیر نحوه تنظیم برخی از افزونههای محبوب تکمیل کد (code autocompletion) برای استفاده از مدل Codestral از طریق Gilas API را بررسی میکنند: