|
from langchain.tools import tool |
|
from langchain_community.llms import Ollama |
|
|
|
import os |
|
from dotenv import load_dotenv |
|
load_dotenv(override=True) |
|
|
|
wrn = Ollama(model="wrn", base_url=os.getenv('OLLAMA_HOST'), num_predict=512, temperature=0.2, |
|
system=""" |
|
You are a coder and you are trying to generate a code snippet based on a given prompt. |
|
The code snippet should be in the programming language that's asked for. |
|
Don't Wrap the function in a markdown code block. Return it as a text. |
|
""") |
|
|
|
|
|
class CoderTool(): |
|
@tool("Code Generation Tool") |
|
def code_generation_tool(instruction: str, language: str = "python"): |
|
"""The code generation tool is a tool that can generate code snippets based on a given instruction. |
|
It uses a language model to generate code snippets that are relevant to the given instruction. |
|
Parameters: |
|
- instruction: The instruction for which the code snippet should be generated. |
|
- language: The programming language in which the code snippet should be generated. Default is python. |
|
Returns: |
|
- A code snippet generated based on the given instruction. |
|
""" |
|
|
|
response = wrn.invoke(instruction) |
|
response = response.replace("```", "") |
|
return f"'{response}'" |