Untitled
unknown
plain_text
a year ago
3.5 kB
4
Indexable
Never
""" This is the Continue configuration file. If you aren't getting strong typing on these imports, be sure to select the Python interpreter in ~/.continue/server/env. """ from continuedev.libs.llm.openai import OpenAI import subprocess from continuedev.core.main import Step from continuedev.core.sdk import ContinueSDK from continuedev.core.config import CustomCommand, SlashCommand, ContinueConfig from continuedev.plugins.context_providers.github import GitHubIssuesContextProvider from continuedev.plugins.context_providers.google import GoogleContextProvider class CommitMessageStep(Step): """ This is a Step, the building block of Continue. It can be used below as a slash command, so that run will be called when you type '/commit'. """ async def run(self, sdk: ContinueSDK): # Get the root directory of the workspace dir = sdk.ide.workspace_directory # Run git diff in that directory diff = subprocess.check_output( ["git", "diff"], cwd=dir).decode("utf-8") # Ask gpt-3.5-16k to write a commit message, # and set it as the description of this step self.description = await sdk.models.gpt3516k.complete( f"{diff}\n\nWrite a short, specific (less than 50 chars) commit message about the above changes:") config = ContinueConfig( # If set to False, we will not collect any usage data # See here to learn what anonymous data we collect: https://continue.dev/docs/telemetry allow_anonymous_telemetry=True, # GPT-4 is recommended for best results # See options here: https://continue.dev/docs/customization#change-the-default-llm default_model="gpt-4", # Set a system message with information that the LLM should always keep in mind # E.g. "Please give concise answers. Always respond in Spanish." system_message="", # Set temperature to any value between 0 and 1. Higher values will make the LLM # more creative, while lower values will make it more predictable. temperature=0.5, # Custom commands let you map a prompt to a shortened slash command # They are like slash commands, but more easily defined - write just a prompt instead of a Step class # Their output will always be in chat form custom_commands=[CustomCommand( name="test", description="This is an example custom command. Use /config to edit it and create more", prompt="Write a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.", )], # Slash commands let you run a Step from a slash command slash_commands=[ # SlashCommand( # name="commit", # description="This is an example slash command. Use /config to edit it and create more", # step=CommitMessageStep, # ) ], # Context providers let you quickly select context by typing '@' # Uncomment the following to # - quickly reference GitHub issues # - show Google search results to the LLM context_providers=[ # GitHubIssuesContextProvider( # repo_name="<your github username or organization>/<your repo name>", # auth_token="<your github auth token>" # ), # GoogleContextProvider( # serper_api_key="<your serper.dev api key>" # ) ] )