Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't add action #12

Open
maxenergy opened this issue Jan 29, 2024 · 4 comments
Open

Can't add action #12

maxenergy opened this issue Jan 29, 2024 · 4 comments
Assignees

Comments

@maxenergy
Copy link

Dear Stoerr,
I fllow your steps , but in adding action, test it can not work.
my yaml file

http://localhost:7364/codeveloperengine.yaml

openapi: 3.0.1
info:
title: Co-Developer GPT Engine
version: THEVERSION
**servers:

  • url: https://maxenergyluo.loca.lt/**
    paths:
    /executeAction:
    post:
    operationId: executeAction
    x-openai-isConsequential: false
    summary: Execute an action with given content as standard input. Only on explicit user request.
    parameters:
    - name: actionName
    in: query
    required: true
    schema:
    type: string
    requestBody:
    required: true
    content:
    application/json:
    schema:
    type: object
    properties:
    actionInput:
    type: string
    responses:
    '200':
    description: Action executed successfully, output returned
    content:
    text/plain:
    schema:
    type: string
    /fetchUrlTextContent:
    get:
    operationId: fetchUrlTextContent
    x-openai-isConsequential: false
    summary: Fetch text content from a given URL.
    parameters:
    - name: url
    in: query
    required: true
    schema:
    type: string
    - name: raw
    description: return raw html or pdf content without converting to markdown
    in: query
    required: false
    schema:
    type: boolean
    responses:
    '200':
    description: fetch successful; content returned
    content:
    text/plain:
    schema:
    type: string
    /grepFiles:
    get:
    operationId: grepAction
    x-openai-isConsequential: false
    summary: Search for lines in text files matching the given regex.
    parameters:
    - name: path
    in: query
    description: relative path to the directory to search in or the file to search. root directory = '.'
    required: true
    schema:
    type: string
    - name: fileRegex
    in: query
    description: optional regex to filter file names
    required: false
    schema:
    type: string
    - name: grepRegex
    in: query
    description: regex to filter lines in the files
    required: true
    schema:
    type: string
    - name: contextLines
    in: query
    description: number of context lines to include with each match (not yet used)
    required: false
    schema:
    type: integer
    responses:
    '200':
    description: Lines matching the regex
    content:
    text/plain:
    schema:
    type: string
    /listFiles:
    get:
    operationId: listFiles
    x-openai-isConsequential: false
    summary: Recursively lists files in a directory. Optionally filters by filename and content.
    parameters:
    - name: path
    in: query
    description: relative path to directory to list. root directory = '.'
    required: true
    schema:
    type: string
    - name: filePathRegex
    in: query
    description: regex to filter file paths - use for search by file name
    required: false
    schema:
    type: string
    - name: grepRegex
    in: query
    description: an optional regex that lists only files that contain a line matching this pattern
    required: false
    schema:
    type: string
    - name: listDirectories
    in: query
    description: if true, lists directories instead of files
    required: false
    schema:
    type: boolean
    responses:
    '200':
    description: List of relative paths of the files
    content:
    text/plain:
    schema:
    type: string
    /readFile:
    get:
    operationId: readFile
    x-openai-isConsequential: false
    summary: Read a files content.
    parameters:
    - name: path
    in: query
    description: relative path to file
    required: true
    schema:
    type: string
    - name: maxLines
    in: query
    description: maximum number of lines to read from the file
    required: false
    schema:
    type: integer
    - name: startLine
    in: query
    description: line number to start reading from
    required: false
    schema:
    type: integer
    responses:
    '200':
    description: Content of the file
    content:
    text/plain:
    schema:
    type: string
    /replaceInFile:
    post:
    operationId: replaceInFile
    x-openai-isConsequential: false
    summary: Replaces the single occurrence of one or more literal strings in a file. The whole file content is matched, not line by line.
    parameters:
    - name: path
    in: query
    description: relative path to file
    required: true
    schema:
    type: string
    requestBody:
    required: true
    content:
    application/json:
    schema:
    type: object
    properties:
    replacements:
    type: array
    items:
    type: object
    properties:
    search:
    type: string
    description: The literal string to be replaced - can contain many lines, but please take care to find a small number of lines to replace. Everything that is replaced must be here. Prefer to match the whole line / several whole lines.
    replace:
    type: string
    description: Literal replacement, can contain several lines. Please observe the correct indentation.
    responses:
    '200':
    description: File updated successfully
    /writeFile:
    post:
    operationId: writeFile
    x-openai-isConsequential: false
    summary: Overwrite a small file with the complete content given in one step. You cannot append to a file or write parts or write parts - use replaceInFile for inserting parts.
    parameters:
    - name: path
    in: query
    description: relative path to file
    required: true
    schema:
    type: string
    requestBody:
    required: true
    content:
    application/json:
    schema:
    type: object
    properties:
    content:
    type: string
    responses:
    '200':
    description: File overwritten
@stoerr
Copy link
Owner

stoerr commented Jan 29, 2024

Hi!

Thanks for trying and reporting the problem!

I thought I had that working with loca.lt , but I cannot get it to work right now, too. :-( I can import the codeveloperengine.yaml, as you did, but the requests for e.g. listing files never arrive at my machine. My guess is that that mechanism that asks you for a password the first time you're calling the tunnel from the browser does also hit ChatGPT when it's trying to access your tunnel , in your case https://maxenergyluo.loca.lt/ , and obviously ChatGPT can't enter the password there. I currently don't know a workaround for that. I guess I'll have to remove that recommendation from the documentation for now. Perhaps something changed in the implementation there.

Could you please try serveo instead, as described on https://codevelopergptengine.stoerr.net/https.html ? That's what I'm using and that always worked. Please give me a thumbs up if that works for you.

Best regards,
Hans-Peter

@stoerr
Copy link
Owner

stoerr commented Jan 29, 2024

Well, I updated the documentation that localtunnel currently doesn't work. I can't do anything about that except reporting a bug with OpenAI - it shouldn't fail silently without any kind of error message. Sorry about that - I can only recommend using serveo for now.

@stoerr stoerr self-assigned this Jan 29, 2024
@maxenergy
Copy link
Author

Tks for reply ,using serveo can works fine now. and my yaml has now more actions just /grepFiles: /grepFiles: /readFile:
like this:

https://maxenergyluo.serveo.net/codeveloperengine.yaml

openapi: 3.0.1
info:
title: Co-Developer GPT Engine
version: THEVERSION
servers:

  • url: https://maxenergyluo.serveo.net
    paths:
    /grepFiles:
    get:
    operationId: grepAction
    x-openai-isConsequential: false
    summary: Search for lines in text files matching the given regex.
    parameters:
    - name: path
    in: query
    description: relative path to the directory to search in or the file to search. root directory = '.'
    required: true
    schema:
    type: string
    - name: fileRegex
    in: query
    description: optional regex to filter file names
    required: false
    schema:
    type: string
    - name: grepRegex
    in: query
    description: regex to filter lines in the files
    required: true
    schema:
    type: string
    - name: contextLines
    in: query
    description: number of context lines to include with each match (not yet used)
    required: false
    schema:
    type: integer
    responses:
    '200':
    description: Lines matching the regex
    content:
    text/plain:
    schema:
    type: string
    /listFiles:
    get:
    operationId: listFiles
    x-openai-isConsequential: false
    summary: Recursively lists files in a directory. Optionally filters by filename and content.
    parameters:
    - name: path
    in: query
    description: relative path to directory to list. root directory = '.'
    required: true
    schema:
    type: string
    - name: filePathRegex
    in: query
    description: regex to filter file paths - use for search by file name
    required: false
    schema:
    type: string
    - name: grepRegex
    in: query
    description: an optional regex that lists only files that contain a line matching this pattern
    required: false
    schema:
    type: string
    - name: listDirectories
    in: query
    description: if true, lists directories instead of files
    required: false
    schema:
    type: boolean
    responses:
    '200':
    description: List of relative paths of the files
    content:
    text/plain:
    schema:
    type: string
    /readFile:
    get:
    operationId: readFile
    x-openai-isConsequential: false
    summary: Read a files content.
    parameters:
    - name: path
    in: query
    description: relative path to file
    required: true
    schema:
    type: string
    - name: maxLines
    in: query
    description: maximum number of lines to read from the file
    required: false
    schema:
    type: integer
    - name: startLine
    in: query
    description: line number to start reading from
    required: false
    schema:
    type: integer
    responses:
    '200':
    description: Content of the file
    content:
    text/plain:
    schema:
    type: string

@stoerr
Copy link
Owner

stoerr commented Dec 6, 2024

Hi! Just saw the ticket again - how are your experiences with the whole thing?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants